zshでファイル名の一部を置換するワンライナー

大量の画像ファイルのファイル名を一部だけ変更する必要があったので、下記を参考にしつつzshワンライナースクリプトを書いてやってみました。

シェルスクリプトでパイプを利用して変数格納する方法 - むかぁ~ どっと こむ

find . -name '*~*' -print | while read fn; do mv ${fn} `echo ${fn} | sed "s/~/-/g"`; done;

参考元の記事ではbashでしたので、多分bashでも動くと思います。。。

findコマンドでファイル名を列挙している部分は、変換したいファイル名だけを標準出力するコマンドであれば多分なんでも大丈夫です。