批量重命名 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` mv $file $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
使用所需的命令退出该编辑器。然后我们看到以下输出。
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 文件重命名。