【Linux】シェルでファイルを一括リネーム:ワンライナー集
GUIで複数ファイルを1つずつリネームするのは面倒……。
そんなときこそLinuxの mv
コマンドとシェルのワンライナーが役立ちます。
この記事では、mv
だけを使って以下のようなファイルリネームを一括で実行する方法を紹介します:
- 拡張子の一括変更
- ファイル名の一括置換
- 接頭辞・接尾辞の追加
- 連番付与
- 大文字小文字変換 など
前提環境と注意点
- シェル:bash または zsh 推奨
- 対象ファイル名に空白や特殊文字が含まれる場合は
"$f"
で囲むこと(安全のため) - dry-run で確認したいときは
echo mv ...
に変えて実行するのがおすすめ
拡張子を一括変更
例:.txt
→ .md
|
|
ファイル名の先頭に接頭辞を追加
例:sample.txt
→ new_sample.txt
|
|
ファイル名の末尾に接尾辞を追加
例:report.csv
→ report_backup.csv
|
|
文字列を一括置換
例:draft_
→ final_
|
|
${f/old/new}
は1箇所のみ、${f//old/new}
で全置換。
空白をアンダースコアに変換
|
|
連番でリネーム
例:image_001.jpg
, image_002.jpg
|
|
ファイル名をすべて小文字に変換
|
|
ファイル名をすべて大文字に変換
|
|
拡張子だけを大文字に
例:.jpg
→ .JPG
|
|
拡張子のないファイルに追加
例:LICENSE
→ LICENSE.txt
|
|
dry-runで動作確認したい場合
mv
を echo mv
に置き換えると、実際に移動せずコマンドだけを出力できます。
|
|
まとめ
mv
+for
+ パラメータ展開で、柔軟な一括リネームが可能.bashrc
や.zshrc
に関数として登録しておくと再利用が楽- 慣れるまでは
echo
でのdry-run確認をおすすめ