概要
renameは、大量のファイル名を規則に従って変更する際に使用する強力なコマンドです。このコマンドは、`s/old_pattern/new_pattern/`のようなPerl正規表現構文を使用して、ファイル名内の特定の文字列を検索し、別の文字列に置き換えることができます。たとえば、すべての`.jpeg`拡張子を`.jpg`に変更したり、ファイル名に含まれる空白をアンダースコア(`_`)に変更したりするなどの作業を簡単に自動化できます。
主な特徴
renameコマンドの主な特徴は以下の通りです。
- 複数のファイル名を一度に変更します。
- 正規表現に基づいた強力なパターン置換機能を提供します。
- `mv`コマンドが一つずつ変更するのとは異なり、一括作業に最適化されています。
- 変更結果を事前に確認できる`dry run`モードをサポートしており、ミスを防ぐことができます。
renameとmvの違い
renameとmvはどちらもファイル名の変更に使用されますが、機能と目的において違いがあります。
- rename: 複数のファイル名をパターンに基づいて一括変更することに特化しています。
- mv: 単一のファイルやディレクトリの名前を変更したり移動したりするのに使用されます。複数のファイルを変更するにはスクリプトが必要です。
主要オプション
よく使用するrenameコマンドのオプションを目的別にグループ化しました。
1) 一括変更
2) ヘルプ
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`rename` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
renameコマンドの様々な使用例を通じて機能を習得してください。
ファイル拡張子の変更
rename 's/\.jpeg$/.jpg/' *.jpeg
現在のディレクトリ内のすべての`.jpeg`拡張子を`.jpg`に変更します。
ファイル名内の特定文字列の変更
rename 's/^image_/photo_/' *.jpeg
`image_`で始まるすべてのファイル名で、`image_`を`photo_`に変更します。
空白をアンダースコアに変更
rename 's/ /_/g' *
ファイル名に含まれるすべての空白(` `)をアンダースコア(`_`)に変更します。
大文字を小文字に変換
rename 'y/A-Z/a-z/' *
すべてのファイル名の大文字を小文字に変換します。
変更結果のプレビュー
rename -n 's/.html/.txt/' *.html
実際のファイルを変更せずに、`.html`拡張子を`.txt`に変更した場合の結果を事前に確認します。
インストール
renameはすべてのLinuxディストリビューションに標準で含まれているわけではないため、以下のコマンドでインストールする必要があります。一部のディストリビューションでは、`perl-rename`または`prename`としてパッケージ名が異なる場合があります。
Debian/Ubuntu
sudo apt update
sudo apt install rename
RHEL/CentOS/Fedora
sudo dnf install prename
Arch Linux
sudo pacman -S perl-rename
ヒントと注意事項
renameコマンド使用時の注意点をまとめました。
ヒント
- 正規表現においてドット(`.`)は任意の1文字を意味するため、拡張子を変更する際は`\.jpeg`のようにバックスラッシュ(`\`)を使用してエスケープする必要があります。
- renameは強力なツールであるため、ミスを防ぐために常に`-n`オプションを最初に使用して結果を確認することをお勧めします。
- ファイル名に空白が含まれている場合は、引用符(`"`)で囲んで引数として渡す必要があります。