这应该适用于我的CentOS 6.6但不知何故文件名没有改变。我在这里缺少什么?
rename -f 's/silly//' sillytest.zi
这应该将sillytest.zi
重命名为test.zi
,但名称不会更改。当然我可以使用mv
命令,但我想应用于许多文件和模式。
答案 0 :(得分:3)
GNU / Linux系统上常用两种不同的rename
实用程序。
在基于Red Hat的系统(例如CentOS)上,rename
是util-linux
包提供的已编译可执行文件。这是一个使用非常简单的简单程序(来自相关手册页):
rename from to file...
rename
将通过from
替换名称中第一次出现的to
来重命名指定的文件。
较新版本还支持有用的-v, --verbose
选项。
NB:如果一个文件已经存在,其名称与正在重命名的文件的新名称一致,那么这个rename
命令将默默地(没有警告)覆盖前面的现有文件。
修复HTML文件的扩展名,以便所有.htm
个文件都有一个四个字母.html
后缀:
rename .htm .html *.htm
要将sillytest.zi
重命名为test.zi
,请将silly
替换为空字符串:
rename silly '' sillytest.zi
在基于Debian的系统上,rename
是一个更强大的Perl脚本
因为你得到了Perl丰富的正则表达式的好处。
它的用法是(来自其手册页):
rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]
rename
根据指定为第一个参数的规则重命名提供的文件名。
此rename
命令还包含-v, --verbose
选项。同样有用的是它的-n, --no-act
,它可以用作干运行来查看哪些文件将被重命名。此外,除非使用-f, --force
选项,否则不会覆盖预先存在的文件。
修复HTML文件的扩展名:
rename s/\.htm$/.html/ *.htm