ファイル名やフォルダ名の一括置換が行えるrenameコマンドについてまとめます。
renameコマンドの使い方
rename [option] expression replacement file
rename, オプション, 検索文字列, 置換文字列, ファイルパスでコマンドが実行できます。
-v, --verbose : 出力結果を表示 -V, --version : バージョンを表示子 -s, --symlink : ??? -h, --help : ヘルプを表示
オプションは他のコマンドと比べると少なめのようです。
renameコマンドの実行
Rekka@DESKTOP-D8DQSHI ~/OneDrive/ドキュメント/Samples $ ls 'hello world ^^.txt' Rekka@DESKTOP-D8DQSHI ~/OneDrive/ドキュメント/Samples $ rename " " _ * Rekka@DESKTOP-D8DQSHI ~/OneDrive/ドキュメント/Samples $ ls 'hello_world ^^.txt' Rekka@DESKTOP-D8DQSHI ~/OneDrive/ドキュメント/Samples $ rename " " _ * Rekka@DESKTOP-D8DQSHI ~/OneDrive/ドキュメント/Samples $ ls 'hello_world_^^.txt'
ファイル名の3つの半角スペースを3つのアンダースコアに変換してみました。
Rekka@DESKTOP-D8DQSHI ~/OneDrive/ドキュメント/Samples $ rename -v " " _ * `hello world ^^.txt' -> `hello_world ^^.txt'
オプションの-vを付けてrenameコマンドを実行すると、renameコマンドの実行結果を表示してくれます。
心配な時はこのオプションで一度確認すると安全ですね。
ウェブページに埋め込まれている画像なんかはサーバー側に配慮してファイル名にアンダースコアが使われてますが、他の場所では半角スペースを使ったファイルも結構あるので、こちらのrenameコマンドを利用してファイル名を置換してます。
1つ1つ手作業で置換していくと大変ですがコマンドを叩けば簡単に作業が終わります。
置換対象の文字列が複数ある場合はファイル名の先頭から適用されていくようなので、何回か同じコマンドを叩いてあげれば問題なく置換できます。
正規表現も利用できるようなので複雑な置換もできますね。
この記事を読んだ人はこんな記事も読んでいます。
【Linux】renameコマンド / ファイル名を一括置換