Dio*_*iva 19 shell rename files
我有几个带有“.old”扩展名的文件。
如何在不删除文件的情况下删除“.old”扩展名?
我可以手动完成,但需要做更多的工作:
mv file1.key.old file1.key
mv file2.pub.old file2.pub
mv file3.jpg.old file3.jpg
mv file4.jpg.old file4.jpg
(etc...)
Run Code Online (Sandbox Code Playgroud)
该命令也适用于其他扩展吗?
例子:
mv file1.MOV.mov file1.MOV
mv file2.MOV.mov file2.MOV
mv file3.MOV.mov file3.MOV
(etc...)
Run Code Online (Sandbox Code Playgroud)
或更好:
mv file1.MOV.mov file1.mov
mv file2.MOV.mov file2.mov
mv file3.MOV.mov file3.mov
(etc...)
Run Code Online (Sandbox Code Playgroud)
jim*_*mij 25
使用bash 的参数替换机制去除匹配的后缀模式:
for file in *.old; do
mv -- "$file" "${file%%.old}"
done
Run Code Online (Sandbox Code Playgroud)
您没有说明您使用的是什么操作系统,但许多 Linux 发行版都有一个rename
您可以使用的命令。实际上有两个完全不同的rename
命令——Debian 和类似的系统提供一个,而 RedHat 和类似的系统提供另一个——但任何一个都可以在这里工作。
Perl 基于rename
Debian、Ubuntu 等,请参阅:prename 手册。
rename
Redhat 等上的Util-Linux ,请参阅:重命名手册。
在 Debian 和类似系统上,您可以执行以下操作:
rename 's/\.old$//' *
Run Code Online (Sandbox Code Playgroud)
或者:
rename s/.MOV.mov/.mov/ *.*
Run Code Online (Sandbox Code Playgroud)
在 Redhat 和类似产品上,您可以执行以下操作:
rename .old "" *
Run Code Online (Sandbox Code Playgroud)