Linux ターミナルを使ってファイルやディレクトリの名前を変更する方法
Linux ターミナルの rename
コマンドと mv
コマンドを使ってファイルとディレクトリの名前を変更することができます。mv
コマンドでは一度に 1つのファイルしかリネームできませんが、rename
コマンドでは複数のファイルを同時にリネームすることができます。
mv
コマンドを使ったファイルとディレクトリのリネーム
コマンド mv
はファイルやディレクトリの名前を変更することができます。また、ファイルやディレクトリをある場所から別の場所に移動させるためにも使用されます。
mv
コマンドの構文
mv [OPTIONS] source destination
ソース source
には 1つ以上のファイルやディレクトリを指定することができ、destination
には常に 1つのファイルやディレクトリを指定します。
ソースとして複数のファイルやディレクトリがある場合、宛先は常にディレクトリです。この場合、ソースとなるファイルとディレクトリはすべて移動先のディレクトリに移動されます。
単一のファイルをソース、ディレクトリをターゲットとする場合、ソースファイルはターゲットディレクトリに移動されます。
mv
を使ってファイルの名前を変更するには、mv
コマンドのソースとターゲットの両方のパラメータがファイルでなければならません。
mv helloworld.py main.py
これにより、ファイル helloworld.py
が main.py
にリネームされます。
同様にディレクトリの名前を変更することもできます。
mv Programs Python-Programs
これは、Programs
ディレクトリの名前を Python-Programs
に変更するものです。
複数のファイルを mv
コマンドで名前を変更する
知っての通り、mv
コマンドは一度に一つのファイルしかリネームできません。複数のファイルの名前を変更するには、for
や while
ループを使用することができます。
for f in *.png; do
mv -- "$f" "${f%.png}.jpg"
done
このコマンドは、カレントディレクトリ内の拡張子が .png
のファイルをすべて .jpg
にリネームします。
rename
コマンドを使ったファイルとディレクトリのリネーム
rename
コマンドは mv
コマンドよりも少し高度で、複数のファイルの名前を一度に変更することができます。
Perl 版の rename
コマンドを Ubuntu
と Debian
にインストールするには、以下のコマンドを使ってください。
sudo apt install rename
Perl 版の rename
コマンドを CentOS
と Fedora
にインストールするには、次のコマンドを使ってください。
sudo yum install prename
Perl 版の rename
コマンドを Arch Linux
にインストールするには、以下のコマンドを使ってください。
yay perl-rename ## or yaourt -S perl-rename
コマンドの構文: rename
コマンドの構文
rename [options] 's/old/new/' files
コマンド: rename
の構文: コマンド: 例。例:rename
コマンドによるファイルの名前の変更
rename 's/.png/.jpg/' *.png
このコマンドは、カレントディレクトリ内のすべての .png
ファイルの名前を .jpg
に変更します。
リネーム後のファイル名を表示します。には、rename
コマンドの -v
オプションを使用します。
rename -v 's/.jpg/.png/' *.jpg
出力:
1.jpg renamed as 1.png
bubbleheads.jpg renamed as bubbleheads.png
demo.jpg renamed as demo.png
hiss.jpg renamed as hiss.png
invoice.jpg renamed as invoice.png
カレントディレクトリ内のすべての .jpg
ファイルの名前を .png
に変更し、変更後のファイル名をターミナルに表示します。
例:ファイル名を小文字に変換する
rename 'y/A-Z/a-z/' *
カレントディレクトリ内の大文字のファイル名のすべてのアルファベットを小文字に変換します。
例:ファイル名を大文字に変換する
rename 'y/a-z/A-Z/' *
カレントディレクトリ内の小文字のファイル名のすべてのアルファベットを大文字に変換します。
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn