複数のファイルを一度にリネームしたい時に便利なシェルスクリプトです。
#!/bin/bash
# ファイル名に含まれる文字列を指定した文字列に変更するスクリプト
# 実行時引数が3つ未満の場合は使い方を表示して終了
if [ $# -lt 3 ]
then
echo "[Usage] 変更前の文字列 変更後の文字列 変更したいファイルのパス"
exit 1
fi
args=$*
extra_args="$1 $2"
files=${args#$extra_args}
for f in $files
do
mv $f ${f/$1/$2}
done
このシェルスクリプトを rename という名前で保存します。シェルスクリプトの保存に関しては以下の記事をごらんください。
使用例
カレントディレクトリに以下のファイルが保存されていたとします。
- icon_128.png
- icon_256.png
- icon_512.png
上記のスクリプトを使って icon_ を Icon- に変更してみます。以下のようにコマンドを入力して下さい。
rename icon_ Icon- *.png
すると、ファイル名は次のように変更されます。
- Icon-128.png
- Icon-256.png
- Icon-512.png
