renameコマンド 使い方

事の経緯

例えば、以下のディレクトリ内で、全体のファイル名をTestをSampleに変えたいと思ったとします。実行環境は、Ubuntuです。

$ ls
Test_00.txt   Test_01.txt   Test_02.txt   Test.dat   


そうしたいとき、mvコマンドを真っ先に浮かぶのですが、わざわざ一つ一つmvコマンドで打っていくのは馬鹿らしいので、一括でファイル名を変換するコマンドはないものかと調べているとrenameコマンドというものがあるらしく、一括でファイル名の共通した部分を変換してくれるらしいです。
方法を調べたのですが、見合った記事が少なかったので、記録します。

renameコマンドの使い方

複数のファイルの名前を変えるrenameコマンドを紹介します。今回は、全てのファイル名をTestからSampleに変換します。

rename Test Sample *

1つ目の引数で変更前のファイル名の部分を指定
2つ目の引数で変更後のファイル名の部分を指定
3つ目の引数で対象のファイル名を指定
今回は、全てのファイルを指定しているため、ワイルドカードを使ってます。
実行後

ls
Sample_00.txt   Sample_01.txt   Sample_02.txt   Sample.dat

しかし、このことが書いてある記事に辿り着くのに苦労しました(汗)。

ここで注意が必要です。renameコマンドはファイルだけではなくディレクトリも対象になります。そのため、ranameコマンドは同一ディレクトリ内でのファイル名一括変更時のみに使用したほうが良いでしょう。

他にもLinux環境では、以下の方法で変換するらしいです。

$ rename "s/Test/Sample/;" *


Windowsでは、renameコマンドと同様なコマンドでrenコマンドがあるらしいです。

まとめ

renameコマンドの構文

$ rename 変更前文字列 変更後文字列 対象ファイル名

おススメ書籍

Linuxを学ぶ上で、おススメの書籍を紹介します。

Linux教科書 LPICレベル1 Version5.0対応

この書籍は、LPICというLinuxのプロフェッショナルとして認定される資格の教科書になります。

資格の教科書ですが、Linuxを学ぶ上でもってこいの書籍です。自分は、この書籍でLPICを取得しました。


Linux教科書 LPICレベル1 Version5.0対応
新しいLinuxの教科書

初めてLinuxを触る人でも分かりやすく表現されており、読みやすいです。


新しいLinuxの教科書