開発したアプリなど一覧

rename コマンドでファイル名を一括で変更する

PC で作業中に、大量のファイルの名前を変更する必要がでてきた。ファイル数が数個ならまだしも数十個にもなると一つ一つ変更するのは面倒くさい。そういった作業はソフトウェアの力を借りるべきだ。

macOS や Linux を利用しているのであれば rename コマンドを利用すると簡単に大量のファイルの名前を変更できる。自分は WSL(Windows Subsystem for Linux) 上の Ubuntu で動かした。macOS の rename コマンドはちょっと違うらしいけど手元に環境が無いから知らん。

例えば、以下のように第一引数に変換ルールを、第二引数に変換対象のファイルを指定してファイル名を変更できる。

$ ls
P1040986.jpg*  P1050008.jpg*  P1050026.jpg*  P1050046.jpg*  P1050068.jpg*  P1050084.jpg*
# (省略)
$ rename 's/P/almaty-P/;' *.jpg
$ ls
almaty-P1040986.jpg*  almaty-P1050016.jpg*  almaty-P1050046.jpg*  almaty-P1050076.jpg*
# (省略)

実行するのが不安であれば引数に -n をつければ結果だけ表示して実際には変換を行わない。

$ rename -n 's/P/almaty-P/;' *.jpg
rename(P1040986.jpg, almaty-P1040986.jpg)
rename(P1040987.jpg, almaty-P1040987.jpg)
rename(P1040990.jpg, almaty-P1040990.jpg)
# (省略)

変更後のファイル名と同名のファイルがある場合は変更しないが、引数に -f をつけると強制的に上書きを行う。

$ rename 's/^P/almaty-P/;' *.jpg
P1040986.jpg not renamed: almaty-P1040986.jpg already exists
$ rename -f 's/^P/almaty-P/;' *.jpg

便利なコマンドなので Linux コマンドが使える環境ならぜひ覚えておきたい。

Sponsored Link

コメント

タイトルとURLをコピーしました