如何将当前目录中具有特定扩展名的所有文件重命名为另一个扩展名?

如何将当前目录中具有特定扩展名的所有文件重命名为另一个扩展名?

可能的重复:
重命名多个文件(更改扩展名)

假设在我的当前/工作目录中有五个文件:

file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps

有什么方法可以用扩展名重命名当前/工作目录中的所有文件.xvg并给他们新的扩展。TXT(离开.eps单独文件)?这可以用renamemv或来完成mmv吗?我正在使用 Ubuntu Linux。谢谢!

答案1

对于您的特定问题,此命令将起作用。验证您对建议的重命名感到满意,然后删除-n以继续操作。

rename -n 's/\.xvg$/.txt/' *.xvg

这基本上意味着对于当前目录中具有扩展名的所有文件,找到以 ( ).xvg结尾的文件并将名称的该部分更改为.$.xvg.txt

更多详细信息和示例如下。


是的,该rename命令将为您执行此操作。一个简短的示例,其中我将所有文件重命名为扩展名.html.html_bak忽略目录中的其他文件。

我会强烈地建议使用-n命令行选项第一的(下面解释)以查看在执行实际命令之前会发生什么变化。

我从以下内容开始:

$ ls
a.html  a.txt  b.html  htmlfile

方法-n是进行“试运行”..只是显示会发生什么变化,而不是改变任何东西!

$ rename -n 's/\.html$/.html_bak/' *
a.html renamed as a.html_bak
b.html renamed as b.html_bak

原来的文件还在。

$ ls
a.html  a.txt  b.html  htmlfile

现在说实话:

$ rename  's/\.html$/.html_bak/' *

文件已被重命名。

$ ls
a.html_bak  a.txt  b.html_bak  htmlfile

在上面的示例中,我用于*指定要考虑进行重命名操作的文件。我可以将其限制为.html仅具有*.html.

有关更多信息,请参阅重命名手册页

答案2

这可以这样做:

rename 's/xvg$/txt/' *.xvg

glob 模式确保只有*.xvg文件受到影响。

相关内容