在Linux中使用CLI更改文件夹中的所有文件扩展名

时间:2014-03-05 09:54:04

标签: linux shell

如何在Linux中使用CLI上的一个命令更改文件夹中的所有文件扩展名?

5 个答案:

答案 0 :(得分:12)

使用rename

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

答案 1 :(得分:5)

如果您安装了perl rename(有不同的rename实现),您可以执行以下操作:

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

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

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

答案 2 :(得分:2)

您可以在命令行上使用for循环:

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

这将获取扩展名为.old的所有文件并将其重命名为.new

答案 3 :(得分:0)

这应该在当前目录 AND 子目录上有效。它将使用新扩展名重命名目录结构下的所有 .oldExtension 文件。

for f in `find . -iname '*.oldExtension' -type f -print`;do mv "$f" ${f%.oldExtension}.newExtension; done

答案 4 :(得分:-1)

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

  

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

说明:以递归方式查找从当前目录(。)开始的所有文件(-type f),并将移动命令(mv)应用于每个文件。另请注意{}周围的引号,以便正确处理带空格(甚至是换行符......)的文件名。