批量重命名Linux文件

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程