【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確認をおすすめ