LinuxやMacでファイルの拡張子を一括で変えたい時やファイルの頭に文字列入れたいときは rename コマンドを使うと便利です。
基本的な書式はこのとおり。
rename [from] [to] [files]
from :置き換え前の文字列
to :置き換え後の文字列
files :変換対象のファイル、ワイルドカードの使用も可能
% rename .htm .html *.htm
→ 拡張子を .htm から .html に置換
% rename hoge- piyo- foo-*.txt
→ hoge-*.txt を piyo-*.txt に置換
% rename hoge "" hoge*.txt
→ ファイル名先頭の hoge を削除
% rename "" hoge *.txt
→ ファイル名の先頭に hoge を加える
mv でしこしこがんばるよりもよほど楽させてくれそうです。
rename コマンドのアツいポイントは、vim や sed のように正規表現を使ってファイル名を置換できること。(少し古めの環境はだめっぽいですが・・)
こんなかんじ。
% ll hoge*
-rw-rw-r-- 1 bacchi bacchi 53683 1月 13 09:56 hoge_01.txt
-rw-rw-r-- 1 bacchi bacchi 58000 1月 13 09:56 hoge_02.txt
-rw-rw-r-- 1 bacchi bacchi 56103 1月 13 09:56 hoge_03.txt
-rw-rw-r-- 1 bacchi bacchi 51102 1月 13 09:56 hoge_01.txt
-rw-rw-r-- 1 bacchi bacchi 51133 1月 13 09:56 hoge_05.txt
-rw-rw-r-- 1 bacchi bacchi 55016 1月 13 09:56 hoge_06.txt
-rw-rw-r-- 1 bacchi bacchi 57917 1月 13 09:56 hoge_07.txt
-rw-rw-r-- 1 bacchi bacchi 51525 1月 13 09:56 hoge_08.txt
-rw-rw-r-- 1 bacchi bacchi 51161 1月 13 09:56 hoge_09.txt
-rw-rw-r-- 1 bacchi bacchi 8689 1月 13 09:56 hoge_10.txt
% rename 's/.txt/.lst/' hoge_*
% ll hoge*
-rw-rw-r-- 1 bacchi bacchi 53683 1月 13 09:56 hoge_01.lst
-rw-rw-r-- 1 bacchi bacchi 58000 1月 13 09:56 hoge_02.lst
-rw-rw-r-- 1 bacchi bacchi 56103 1月 13 09:56 hoge_03.lst
-rw-rw-r-- 1 bacchi bacchi 51102 1月 13 09:56 hoge_01.lst
-rw-rw-r-- 1 bacchi bacchi 51133 1月 13 09:56 hoge_05.lst
-rw-rw-r-- 1 bacchi bacchi 55016 1月 13 09:56 hoge_06.lst
-rw-rw-r-- 1 bacchi bacchi 57917 1月 13 09:56 hoge_07.lst
-rw-rw-r-- 1 bacchi bacchi 51525 1月 13 09:56 hoge_08.lst
-rw-rw-r-- 1 bacchi bacchi 51161 1月 13 09:56 hoge_09.lst
-rw-rw-r-- 1 bacchi bacchi 8689 1月 13 09:56 hoge_10.lst
超便利だなーということで、メモ!