如何在Linux中使用CLI上的一个命令更改文件夹中的所有文件扩展名?
答案 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)应用于每个文件。另请注意{}周围的引号,以便正确处理带空格(甚至是换行符......)的文件名。