批量重命名Linux文件
介绍
如果我们想在Linux中重命名任何文件,我们使用“mv”命令。但是mv命令一次只能重命名一个文件,在终端中不能一次重命名多个文件。如果我们想要重命名多个文件,我们必须以不同的方式使用mv命令。还有其他可用的命令,如“rename”、“mmv”、“renameutils”等。尽管这些命令中的一些在Linux中没有默认安装,但我们需要单独安装它们。
在这篇文章中,让我们通过一些示例来了解每个命令。
方法1:使用“mv”命令
我们已经知道mv命令用于重命名单个文件,但我们可以在bash脚本中使用mv命令来重命名多个文件。
让我们在Linux中创建一些.txt文件。
$ touch 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt
然后使用下面的bash脚本将所有的.txt文件重命名为.odt文件。
命令
ls *.txt #Print all text file names
for file in `ls *.txt`;
do
filename=`basename file .txt`
mvfile $filename.odt;
done
ls *.odt #Print all odt file names
运行bash脚本
$ bash multiple_rename.sh
输出
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
10.odt 1.odt 2.odt 3.odt 4.odt 5.odt 6.odt 7.odt 8.odt 9.odt
现在,我们可以看到所有的文件都被重命名为 .odt 文件。
命令
$ ls
输出
10.odt 1.odt 2.odt 3.odt 4.odt 5.odt 6.odt 7.odt 8.odt 9.odt multiple_rename.sh
方法2:使用“rename”命令
我们可以借助rename命令来批量重命名文件。如果Linux默认没有安装rename命令,我们可以使用以下命令来安装它。
$ sudo apt install rename
然后我们可以在linux终端中使用“rename”命令,检查下面的输出以确认命令是否正确安装。
$ rename
输出
Usage:
rename [ -h|-m|-V ] [ -v ] [ -n ] [ -f ] [ -e|-E *perlexpr*]*|*perlexpr*
[ *files* ]
现在让我们使用以下命令将所有的.odt文件重命名为.docx文件。
命令
$ rename 's/\.odt/\.docx/' *.odt
这是前一个命令的最终结果。
$ ls
输出
10.docx 1.docx 2.docx 3.docx 4.docx 5.docx 6.docx 7.docx 8.docx 9.docx
方法3:使用“mmv”命令
这个命令在Linux中可能不是默认安装的。
如果在执行“mmv”命令后出现以下消息,说明命令没有安装。
$mmv
The program 'mmv' is currently not installed. You can install it by typing:
sudo apt install mmv
然后我们应该安装它。
$ sudo apt install mmv
在终端中提供“mmv”命令确认安装。
现在,让我们使用“mmv”命令将所有.docx文件转换为.png文件。我们可以使用以下语法。
命令
$ mmv '*.docx' '#1.png'
这是先前命令的最终结果。
$ls
输出
10.png 1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png
方法4:使用“qmv”命令
要使用qmv命令,我们需要安装renameutils,因为此命令在Linux中默认未安装。
命令
$ sudo apt install renameutils
现在,我们只需要执行“qmv”命令。
$ qmv
输出
10.png 10.png
1.png 1.png
2.png 2.png
3.png 3.png
4.png 4.png
5.png 5.png
6.png 6.png
7.png 7.png
8.png 8.png
9.png 9.png
multiple_rename.sh multiple_rename.sh
[ Read 11 lines ]
^G Get Help ^O Write Out ^W Where Is ^K Cut Text ^J Justify ^C Cur Pos ^Y Prev Page M-\ First Line
^X Exit ^R Read File ^\ Replace ^U Uncut Text ^T To Spell ^_ Go To Line ^V Next Page M-/ Last Line
这里我们可以看到两列,左侧是原始文件名,右侧是修改后的文件名。我们可以根据需要编辑右侧的列。例如,我们已将两个文件修改为.odt。
10.txt to 10.odt
1.png to 1.odt
请查看下面的更改
10.png 10.odt
1.png 1.odt
2.png 2.png
3.png 3.png
4.png 4.png
5.png 5.png
6.png 6.png
7.png 7.png
8.png 8.png
9.png 9.png
multiple_rename.sh multiple_rename.sh
使用required
命令退出该编辑器。然后我们看到以下输出。
Plan is valid.
10.png -> 10.odt
1.png -> 1.odt
Regular rename
10.png -> 10.odt
1.png -> 1.odt
让我们确认一下是否发生了变化。
$ ls
输出
10.odt 1.odt 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png
结论
从这篇文章中,我们学到了许多批量重命名Linux文件名的新命令。根据我们的要求,我们可以使用这些命令中的任何一个。这也帮助我们以更快的方式进行Linux文件重命名。