rename
何するコマンド?
書き方
rename [変更前の文字列] [変更後の文字列] [対象のファイル名]
オプション
ありません。
補足事項
ちょっと癖があるので、実例を挙げて説明しますね。
例えば
rename .csv .txt *.csv
と書いた場合、すべてのCSVファイルの拡張子「.csv」が「.txt」に変わります。
「*.csv」が対象のファイルです。
「*(アスタリスク)」は正規表現で「任意の0文字以上」を表す指定です。
「*.csv」は「なんか適当な名前.csv」だとお考えください。
「.csv」は変更前の文字列です。
ファイル名にある「.csv」の部分が変更対象となります。
「.txt」は変更後の文字列です。
変更対象の文字列が「.txt」に書き換わります。
つまり
rename .csv .txt *.csv
は
「適当な名前.csv」の「.csv」の部分を「.txt」に書き換えてよ
な命令です。
よって、すべてのCSVファイルの拡張子「.csv」が「.txt」に変わります。
これは一括でファイル名を変更したい場合に便利ですね。
その一方で単純に1つのファイルのファイル名を変更したいときは面倒です。
例えば「hoge.txt」のファイル名を「hoge2.txt」に変更したい場合は
rename hoge.txt hoge2.txt hoge.txt
と書く必要があります。
「hoge.txt」の「hoge.txt」の部分を「hoge2.txt」に書き換えてよ
な命令をしないといけないのです。
そのため、単純にファイル名を変更したいときは「rename」コマンドではなく「mv」コマンドを使うのが一般的です。
あっ、そうそう。
大事な注意点が ありました。
変更前の文字列から変更後の文字列に変更してくれるのは、1つのファイル名に対して最初の一か所だけです。
例えば
rename hoge A hogehogehoge.txt
を実行すると「hogehogehoge.txt」は「AAA.txt」ではなく「Ahogehoge.txt」になります。
ご注意ください。
