2012年4月9日

Linux Script:mv, rename 單次及批次修改檔案名稱


 
圖片來源:http://gihansblog.wordpress.com/2011/10/29/a-shell-script-for-renaming-large-number-of-file-in-linux/

在 Windows 系統中,無論我們要重新命名資料夾或是檔案,
通常都點下右鍵後選擇重新命名即可,
如果對快捷鍵比較熟,直接按下 F2 可以更快地達成目的。
而在 Linux 系統中,重新命名資料夾或檔案也可以透過同一個指令來達成,這個指令是 mv !mv 是 move 的縮寫,他除了移動檔案資料夾的功能外也可以同時重新命名。
所以其實仔細想想拿他來重新命名檔案也不會很難理解啦,
重新命名時只是把檔案移動到同一個資料夾,然後趁著移動時把檔名給順便改了!

說了這麼多那 mv 指令到底該怎麼使用呢?
# mv $1 $2
# $1: 舊檔案或資料夾名稱
# $2: 新的檔案或資料夾名稱
mv oldname.txt newname.txt

上面的方法是用來重新命名單一檔案或資料夾,
但是當一個目錄資料夾底下有很多有特定規則檔名的檔案需要改名,
例如相機產生的檔案 IMG001.jpg~IMG999.jpg 超多檔案,
這絕對不可能直接用 mv 一個個慢慢敲來改名的。
這時候另一個指令就可以派上用場了,
rename 這個指令可以用來批次修改檔名共同的部分,使用方式如下:

# rename $1 $2 $3
# $1: 要被取代的關鍵字
# $2: 新的關鍵字
# $3: 檔名符合這個規則的才取代

# 把 IMG001.jpg, IMG002.jpg… 換成 img001.jpg, img002.jpg… 
rename IMG img IMG*

# 把所有 .htm 檔案改成 .html
rename .htm .html *.htm

# 把檔案 foo1, ..., foo9, foo10, ..., foo278.
# 改成 foo001, ..., foo009, foo010, ..., foo278.
rename foo foo0 foo?
rename foo foo0 foo??

關鍵字:linux, rename, file, folder, 改檔名, 重新命名, batch rename, 批次, 用法, 指令, move, mv, inux資料夾, 重新命名軟體, 檔案, 工具, 程式, 大量
參考資料:


更多精選推薦文章