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