批量重命名Linux文件
介绍
如果我们想在Linux中重命名任何文件,我们使用“mv”命令。但是mv命令一次只能重命名一个文件,无法在终端中一次重命名多个文件。如果我们想重命名多个文件,则必须以不同的方式使用mv命令。还有其他命令可用,如“rename”,“mmv”,“renameutils”等。虽然有些命令在Linux中默认没有安装,但我们需要单独安装它们。
在本文中,让我们了解每个命令并给出一些示例。
方法一:使用“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 #打印所有文本文件名
for file in `ls *.txt`;
do
filename=`basename file .txt`
mvfile $filename.odt;
done
ls *.odt #打印所有ODT文件名
运行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
方法二:使用“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
方法三:使用“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
方法四:使用“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
[ 读取11行 ]
^G 获得帮助 ^O 写出 ^W 查找 ^K 剪切 ^J 对齐 ^C 光标 ^Y 前一页 M-\ 第一行
^X 退出 ^R 读取文件 ^\ 替换 ^U 取消剪切 ^T 拼写检查 ^_ 跳到行 ^V 后一页 M-/ 最后一行
在这里,可以看到两列,左侧是原始文件名,右侧是修改后的文件名。我们可以根据需要编辑右侧列。例如,我们已将两个文件修改为.odt
10.txt 改为 10.odt
1.png 改为 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
使用所需的命令从编辑器中退出。然后,我们看到以下输出。
计划有效。
10.png -> 10.odt
1.png -> 1.odt
常规更名
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 文件重命名。
极客教程