Linux 修改檔案名稱
- Linux 單次修改檔案名稱。
- Linux 批次修改檔案名稱。
單檔案命名用 mv
指令 mv
,其實最主要的功能是拿來搬移檔案,不過在搬移的時候能夠進行重新指定檔名,所以就被順理成章的成為我們重新命名的指令了。
1 | # 指令 舊檔案 新檔案 |
多檔案命名用 rename
rename
指令可以做大量的檔案更名,它使用 perl
的正規表式法來訂定格式,也稱為 perl-rename
,因此 prename
與 rename
兩個指令是相同的。不過在 Ubuntu 20.04 之後,rename
指令已經沒有內建了,必須自行安裝。
在 Ubuntu 20.04 內建有另一款叫 rename.ul
的更名指令,兩個指令的使用方法並不相同,這邊先以 perl rename
來試範一些我常用的更名方法。
安裝
Ubuntu 20.04 安裝 rename
(Ubuntu 18.04 以前已內建)
1 | $ sudo apt install rename |
基本用法
1 | $ rename 's/原字串/新字串/' 要改的檔案 |
-n
:僅列出更名後的結果,不會真的進行更名,建議更名前一定要檢查。-d
:不對資料夾做更名,僅針對目標路徑下的檔案。
基本檔名更改
將 A1、A2、A3 改為 B1、B2、B3
1 | # 所有檔案 |
- 若碰到需要修改特殊字元,需再前面加上反斜線(
\
)。
在開頭/結尾插入文字
將 A1、A2、A3 改為 ZA1、ZA2、ZA3
1 | # 所有檔案 |
將 A1、A2、A3 改為 A10、A20、A30
1 | # 所有檔案 |
批次更改副檔名
將 .html 改成 .phtml
1 | # 所有 .html 結尾的檔案 |
.
的前面需加上跳脫符號\
。- 原檔名加上
$
是因為要改的是結尾的副檔名,沒有加$
的話,如果原檔名中也有 html 的字串,會被一併更改。
大小寫轉換
大寫轉小寫
1 | $ rename 'y/A-Z/a-z/' * |
小寫轉大寫
1 | $ rename 'y/a-z/A-Z/' * |