可能的重复:
重命名多个文件(更改扩展名)
假设在我的当前/工作目录中有五个文件:
file1.xvg
file2.xvg
file3.xvg
file1.eps
file2.eps
有什么方法可以用扩展名重命名当前/工作目录中的所有文件.xvg并给他们新的扩展。TXT(离开.eps单独文件)?这可以用rename
、mv
或来完成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
文件受到影响。