【rename】Linuxコマンド_ファイル名の変更

ファイル名、もしくはディレクトリ名を変更する際は、「rename」コマンドを使用します。

「remame」コマンドは「cp」や「mv」コマンドと同じような動作ですが、基本、ファイルやディレクトリ名の文字列の変換をする動作となります。

  • 「rename」:ファイル・ディレクトリ名の文字列の置換
  • 「mv」:移動先のファイル・ディレクトリ名の変更
  • 「cp」:コピー先のファイル・ディレクトリ名の変更




↓↓↓ITエンジニアのおすすめ学習・開発環境の詳細へ↓↓↓

「rename」コマンドの使い方(Linux)

「rename」コマンドはファイル名、ディレクトリ名を文字列を置換するコマンドとなります。

構文は以下の通りとなります。

rename [オプション] <置換前の文字列> <置換後の文字列> <該当ファイル>

以下では、「rename」コマンドの使用例となります。

ファイルの名前変更

以下では「test01.txt」ファイルの名前を「file01.txt」へ「rename」コマンドを使用して変更した例となります。

$ ls -lF
total 4
-rw-r--r-- 1 root root 36  7月 17 02:21 test01.txt

「rename」コマンドを使用し、ファイル名を変更します。
「-v」オプションはデバッグを表示させます。

$ rename -v test file test01.txt 
`test01.txt' -> `file01.txt'

「test01.txt」ファイルの名前が「file01.txt」へ変更されたことが確認できます。

$ ls -lF
total 4
-rw-r--r-- 1 root root 36  7月 17 02:21 file01.txt

ディレクトリの名前変更

ディレクトリ名もファイル名と同様に変更することが可能です。

以下では「test01」ディレクトリを「dir01」へ変更した例となります。

$ ls -lF
total 16
drwxr-xr-x 2 root root 4096  7月 18 08:16 test01/

「rename」コマンドでディレクトリ名が変更します。

$ rename -v test dir dir01
`test01' -> `dir01'

ディレクトリ名が「dir01」へ変更されたことが確認できます。

$ ls -lF
total 16
drwxr-xr-x 2 root root 4096  7月 18 08:16 dir01/

複数のファイル・ディレクトリを一括で名前変更

renameコマンドでは複数のファイルやディレクトリの名前を変更することもできます。

以下では複数のファイル名を変更した例となります。

「test01.txt」〜「test03.txt」の「test」を「file」へ一括で置換します。

$ ls -lF
total 0
-rw-r--r-- 1 root root 0  7月 18 08:06 test01.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 test02.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 test03.txt

以下のようにrenameコマンドの後に対象のファイルを複数指定し、実行します。

$ rename -v test file test01.txt test02.txt test03.txt 
`test01.txt' -> `file01.txt'
`test02.txt' -> `file02.txt'
`test03.txt' -> `file03.txt'

一括でファイル名が実行されたことが確認できます。

$ ls -lF
total 0
-rw-r--r-- 1 root root 0  7月 18 08:06 file01.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 file02.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 file03.txt

「*」アスタリスクを使用した複数ファイル・ディレクトリの一括名前変更

上記のように一つ一つのファイル名を指定せず、対象のカレントディレクトリ上のファイルやディレクトリ名を一括で変換したい場合、「*」アスタリスクを使用します。

「*」アスタリスクを使用して同じ文字列のファイルを一括で名前変更した実行例となります。
ファイル名に「test」が記載されている場合一括で変換します。

$ rename -v test file test*
`test01.txt' -> `file01.txt'
`test02.txt' -> `file02.txt'
`test03.txt' -> `file03.txt'

ファイル名が、全て変更されていることが確認できます。

$ ls -lF
total 0
-rw-r--r-- 1 root root 0  7月 18 08:06 file01.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 file02.txt
-rw-r--r-- 1 root root 0  7月 18 08:06 file03.txt

ディレクトリ名もファイルと同様同じように「*」アスタリスクを使用して一括変換ができます。

$ rename -v test dir test*
`test01' -> `dir01'
`test02' -> `dir02'
`test03' -> `dir03'

以下のように一括で変換されたことが確認できます。

$ ls -lF
total 16
drwxr-xr-x 2 root root 4096  7月 18 08:16 dir01/
drwxr-xr-x 2 root root 4096  7月 17 02:21 dir02/
drwxr-xr-x 2 root root 4096  7月 17 02:44 dir03/

「rename」コマンドオプション

「rename」コマンドのオプションは以下の通りとなります。

$ rename --help

Usage:
 rename [options] <expression> <replacement> <file>...

Rename files.

Options:
 -v, --verbose       explain what is being done
 -s, --symlink       act on the target of symlinks
 -n, --no-act        do not make any changes
 -o, --no-overwrite  don't overwrite existing files

 -h, --help          display this help
 -V, --version       display version

For more details see rename(1).

「rename」コマンドの使い方は以上となります。

エンジニアのオンライン学習

エンジニアにおすすめのオンライン教材比較
ITエンジニアが自宅で学習ができるオンラインスクール比較

エンジニアのおすすめ学習「Progate」と「Udemy」比較

VPS_比較
最新情報をチェックしよう!