mv
を使用して複数のファイルとディレクトリの名前を変更する コマンドは、パイプやループなどを使用して複雑なコマンドを作成する必要があるため、面倒なプロセスになる可能性があります。
ここでrename
コマンドが便利です。名前の検索式を指定された置換に置き換えることにより、指定されたファイルの名前を変更します。
このチュートリアルでは、rename
の使用方法を説明します ファイルの名前を一括変更するコマンド。
rename
#
rename
には2つのバージョンがあります 構文と機能が異なるコマンド。 rename
のPerlバージョンを使用します コマンド。
このバージョンがシステムにインストールされていない場合は、Linuxディストリビューションのパッケージマネージャーを使用してインストールしてください。
-
UbuntuとDebian
sudo apt update
sudo apt install rename
-
CentOSとFedora
sudo yum install prename
-
Arch Linux
yay perl-rename
rename
の使用 #
以下は、rename
の一般的な構文です。 コマンド:
rename [OPTIONS] perlexpr files
rename
コマンドは基本的にPerlスクリプトです。指定されたfiles
の名前が変更されます 指定されたperlexpr
に従って 正規表現。 Perlの正規表現についてはここで読むことができます。
たとえば、次のコマンドはすべての.css
の拡張子を変更します .scss
へのファイル :
rename 's/.css/.scss/' *.css
コマンドについて詳しく説明しましょう:
-
s/search_pattern/replacement/
-置換演算子。 -
.css
-検索パターン。これは、置換演算子の最初の引数です。rename
コマンドは、指定されたファイル名でこのパターンを検索し、見つかった場合は、置換引数に置き換えます。 -
.scss
-交換。置換演算子の2番目の引数。 *.css
-拡張子が「.css」のすべてのファイル。ワイルドカード(*
)は、0、1つ以上の文字を表すために使用される記号です。
実際のコマンドを実行してファイルとディレクトリの名前を変更する前に、常に-n
を使用することをお勧めします。 「ドライラン」を実行し、名前が変更されるファイルを表示するオプション:
rename -n 's/.css/.scss/' *.css
出力は次のようになります:
rename(file-0.css, file-0.scss)
rename(file-1.css, file-1.scss)
rename(file-2.css, file-2.scss)
rename(file-3.css, file-3.scss)
rename(file-4.css, file-4.scss)
デフォルトでは、rename
コマンドは既存のファイルを上書きしません。 -f
を使用します rename
を指示するオプション 既存のファイルを上書きするには:
rename -f 's/.css/.scss/' *.css
rename
が必要な場合 名前が正常に変更されたファイルの名前を出力するには、-v
を使用します (詳細)オプション:
rename -v 's/.css/.scss/' *.css
file-0.css renamed as file-0.scss
file-1.css renamed as file-1.scss
file-2.css renamed as file-2.scss
file-3.css renamed as file-3.scss
file-4.css renamed as file-4.scss
rename
例#
以下は、renameコマンドの使用方法の一般的な例です。
ファイル名のスペースをアンダースコアに置き換えます#
rename 'y/ /_/' *
rename 'y/A-Z/a-z/' *
ファイル名を大文字に変換#
rename 'y/a-z/A-Z/' *
.bak
を削除します ファイル名から#
rename 's/\.bak$//' *.bak
.jpeg
の名前を変更します および.JPG
.jpg
へのファイル名 #
rename 's/\.jpe?g$/.jpg/i' *
結論#
rename
コマンドを使用すると、Perl正規表現を使用して、一度に複数のファイルの名前を変更できます。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。