2014-03-05 24 views

回答

11

使用rename

rename 's/.old$/.new/' *.old

+0

您击败了我...得到了赞! –

+1

以上对我而言并不适用。但这对我有效。 >>重命名.htm .html * .htm – viswas

-1

来源:recursively add file extension to all files (不是我的答案。)

find . -type f -exec mv '{}' '{}'.jpg \;

说明:这个递归找到的所有文件(型的F )从当前目录(。)开始将移动命令(mv)应用于它们中的每一个。还请注意{}周围的引号,以便可以正确处理带空格的文件名(甚至是换行符......)。

+0

实际上,这并不删除旧的扩展名,而是附加新的扩展名。 – MichielB

4

如果您已经安装了perl的rename(有不同rename实现),你可以做这样的事情:

$ ls -1 
test1.foo 
test2.foo 
test3.foo 

$ rename 's/\.foo$/.bar/' *.foo 

$ ls -1 
test1.bar 
test2.bar 
test3.bar 
1

你可以使用一个for循环在命令行:

for foo in *.old; do mv $foo `basename $foo .old`.new; done 

这将采取所有扩展名为.old的文件,并将它们重新命名为.new

相关问题