「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典

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」になります。
ご注意ください。

スポンサーリンク


書籍画像