
UNIX Cafe | 第26回
ミナちゃん先生〜!旅行の写真を整理したいんですけど、ぜんぶ変な名前なんです……IMG_1234.JPG とか、DSC_0001.JPG みたいにバラバラで……
どれがどれだか分からなくて大混乱です!



ふむふむ。それなら、“ファイル名をまとめてリネーム”するのがおすすめだよ。



えっ!ファイル名って、まとめて変えられるんですか?
1個ずつ直すしかないと思ってました!



大丈夫。ターミナルを使えば、いっきに名前を変えることができるんだよ。今日は、そのやり方をいっしょにやってみよう。
今日のゴール



今日のテーマは、たくさんのファイル名を、一度にわかりやすく変更すること。



たくさんの画像や書類ファイルがあっても、
すぐ整理できるってことですね!



そう。写真、音声、文章、なんでも使えるよ。
なぜリネームするの?



そもそも、まとめてリネームする必要ってあるんでしょうか?



もちろんあるよ。ファイルが増えてくると、色々と問題がでてくるんだ。
- 中身が分からない
- 探すのに時間がかかる
- 手動で変更するのは大変



確かに!IMG_0001.JPG が並んでると、どれがどれだか分かりません……。



名前を整えるだけで、ずっと管理しやすくなるよ。
まずは基本:ひとつだけ名前を変える



ファイルの名前を変える基本は mv コマンドから。
bash
$ mv old.jpg new.jpg


これなら分かります!1枚なら自分でもできそう!



うん。でも今日は“まとめて”がテーマだから、
ここから一気にレベルアップしていくよ。
まとめて番号をつける(for + mv)



たくさんの画像に番号をつけたいんです。photo_01.jpg photo_02.jpg … みたいに!



その場合は for 文を使ってみよう
自動で連番リネームするスクリプト
count=1
for file in *.jpg
do
mv "$file" "photo_${count}.jpg"
count=$((count + 1))
done


スクリプトができたら rename_seq.sh という名前で保存してね。
実行権限をつけて
bash
$ chmod +x rename_seq.sh実行!
bash
$ ./rename_seq.sh


わ! 魔法みたいです!*.jpg って書くと、“フォルダ内のjpg全部”って意味なんですね!



その通り。count という数字を1ずつ増やしながら、
順番に名前をつけていくんだ。
rename コマンドで置き換え



ファイル名の先頭をまとめて変えたりできますか?



できるよ。rename というコマンドを使うと、とっても便利。
macの場合は Homebrew でインストール
# macOS
bash
$ brew install rename


rename は、Linux ではよく使われるコマンドなんだけど、mac には入っていないの。だから、必要な人は“あとから追加”してあげる必要があるのよ。
先頭の文字を置き換える
bash
$ rename 's/IMG_/pic_/' *.JPG


IMG_ を pic_ に置き換えてるんですね。



そうだよ。s/元/新/ という形で置き換えできるんだ。
プレフィックス(前に文字を足す)
bash
$ rename 's/^/trip_/' *.jpg


trip_ っていう文字を、最初に足してるんですね!
サフィックス(最後に文字を足す)
bash
$ rename 's/$/_2024/' *.jpg


_2024 が最後につくんだ〜!



思い出の整理にも便利だね。
部分削除もできる
bash
$ rename 's/-edited//' *.jpg


-edited を消してるんですね!
あとで整理し直す時に役立ちそう!
実行前に“確認”もできる



いきなり変更してしまうのが不安な時は、
“まず表示だけ”して確認する方法があるよ。
bash
$ rename -n 's/IMG_/pic_/' *.jpg


-n は、“何が起こるか表示だけ”ってことなんですね。
安心です♪
トラブル対策



名前を間違えて変更しちゃったらどうしよう…?



そんな時のために、作業フォルダをコピーしておくのがおすすめ。
またはリネーム後にファイルを別フォルダに保存する方法もあるよ。



準備が大切ですね!
まとめ



今日は、ファイル名をいっきに変える方法を学んだね。
mv→ 基本for→ 連番に便利rename→ 置き換えに最適



写真やファイルの整理が、とってもラクになりそうです!



次回は、“ファイルの中身を調べる”方法を紹介しようと思うよ。



楽しみです〜!





