プログラミングをしている途中で、クラス名などの名前付けがいまいちだったな、と思う時があります。
そういうときは、エディタを使ってクラス名や変数名を置換して、より良い名前付けに変えたりします。
ファイル名の置換はどうするか?
しかしながら、クラス名はファイルの中だけでなく、ファイル自体の名前としても使われていたりします。
ファイル名を一括で置換する方法はないかと調べてみると、renameというコマンドがあるそうです。
UNIXの部屋 コマンド検索:rename (*BSD/Linux)
Linuxは標準で入っていると書かれていますが、Mac OS Xの場合はないようなので、Homebrewからインストールしました。
$ brew install rename
==> Downloading https://github.com/ap/rename/archive/v1.600.tar.gz
######################################################################## 100.0%
==> pod2man rename rename.1
ただこれでインストールされるのは、上記のページで紹介されているrenameコマンドとは違う、別のrenmaeコマンドのようです。
置換してみる
このrenameコマンドは正規表現で置換ができるそうです。
rename 's/User/Company/;' UserModel.php
一括で置換する場合は、findコマンドとかと組み合わせれば良いと思われます。
find ./ -name '*User*' -exec rename 's/User/Company/;' {} \;
リファクタリングが楽になります。