2021-05-12 14:32:11
Linux中rename命令詳解(重新命名多個檔案)
使用mv命令重新命名多個檔案和目錄可能是一個繁瑣的過程,因為它涉及使用管道,迴圈等編寫複雜命令。
這就是rename命令派上用場的地方。 它通過使用指定的替換項替換其名稱中的搜尋表示式來重新命名給定的檔案。
在本教學中,我們將解釋如何使用rename命令批次處理重新命名檔案。
安裝rename
rename命令有兩個版本,具有不同的語法和功能。 我們將使用Perl版本的rename命令。
如果您的系統上未安裝此版本,請使用Linux發行版的軟體包管理器進行安裝:
- Ubuntu和Debian
sudo apt update
sudo apt install rename
[linuxidc@localhost www.linuxidc.com]$ sudo yum install prename
- Arch Linux
yay perl-rename
使用rename
以下是rename命令的一般語法:
rename [OPTIONS] perlexpr files
rename命令基本上是一個Perl指令碼。 它將根據指定的perlexpr正規表示式重新命名給定檔案。 您可以在此處閱讀有關Perl正規表示式的資訊。
例如,以下命令將所有.css檔案的擴充套件名更改為.scss:
[linuxidc@localhost www.linuxidc.com]$ prename 's/.css/.scss/' *.css
讓我們更詳細地解釋一下這個命令:
- s/search_pattern/replacement/ - 替換運算子。
- .css - 搜尋模式。 它是替換運算子中的第一個引數。 rename命令將在給定的檔名中搜尋此模式,如果找到它將用replace引數替換它。
- .scss - 替換。 替換運算子中的第二個引數。
- *.css - 所有擴充套件名為“.css”的檔案。 萬用字元(*)是用於表示零個,一個或多個字元的符號。
在執行實際命令並重新命名檔案和目錄之前,最好使用-n選項執行“預演”並顯示將重新命名的檔案:
[linuxidc@localhost www.linuxidc.com]$ prename -n 's/.css/.scss/' *.css
輸出如下:
linuxidc.com.css -> linuxidc.com.scss
linuxidc.css -> linuxidc.scss
linuxmi.css -> linuxmi.scss
預設情況下,rename命令不會覆蓋現有檔案。 使用-f選項告訴重新命名覆蓋現有檔案:
[linuxidc@localhost www.linuxidc.com]$ prename -f 's/.css/.scss/' *.css
如果要重新命名以列印成功重新命名的檔案的名稱,請使用-v(詳細)選項:
[linuxidc@localhost www.linuxidc.com]$ prename -v 's/.css/.scss/' *.css
輸出如下:
linuxidc.css -> linuxidc.scss
linuxmi.css -> linuxmi.scss
www.linuxidc.com.css -> www.linuxidc.com.scss
rename範例
以下是如何使用rename命令的一些常見範例:
用下劃線替換檔名中的空格
rename 'y/ /_/' *
將檔名轉換為小寫
rename 'y/A-Z/a-z/' *
將檔名轉換為大寫
rename 'y/a-z/A-Z/' *
從檔名中刪除.bak
rename 's/.bak$//' *.bak
將.jpeg和.JPG檔名重新命名為.jpg
rename 's/.jpe?g$/.jpg/i' *
總結
rename命令允許您使用Perl正規表示式一次重新命名多個檔案。
如果您有任何問題或反饋,請隨時發表評論。
相關文章