Linux 下的 rename 命令有两个版本:
如何判断rename是哪个版本,可通过 man rename 查看。若第一行为 RENAME(1) Linux Programmer’s Manual RENAME(1),则是 C语言版本的
若出现RENAME(1) Perl Programmers Reference Guide RENAME(1)则为 Perl 版本的。
- C语言版本
其中,C语言版本的命令如下:
rename 原字符串 新字符串 文件名
样例1: 目录 test 下存在两个文件:j11a.in 、j11a.ans,若需要将文件名中的 a 替换为 空白, 其他部分保持不变,则
(1) 若 当前位于 test 目录下,则执行 rename 1a 1 *
Perl 语言版本的命令如下:
rename ‘s/原字符串/新字符串/’ 文件名
样例2: 题目如样例1,则
(1) 若 当前位于 test 目录下,则执行 rename ‘s/1a/1/’ *
样例3:若改用脚本,可如下:
find -name "*1a*" -print |
while read name; do
echo $name
rename 's/1a/1/' $name
done