批量重命名 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 文件重命名。

更新于:2023年5月8日

浏览量 127

启动您的职业生涯

通过完成课程获得认证

开始
广告