批次重新命名 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

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告