Linuxサーバーでファイル名を変更するrenameコマンドの使い方を見ていきます。
また複数のファイルを一括でrenameしたい場合なども、実例を用いて説明します。
その他のコマンドでrenameする方法もご、現役エンジニアの筆者が紹介します。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年間以上おこなってきました。その経験を元に知識を公開していきます!
Linuxサーバーでファイル名を変更する時など、一括で変更して効率化する事が出来ます。
Linuxのrenameコマンドの使い方
Linuxでrenameコマンドはファイル名を変更する事ができます。
基礎構文を以下に示します。
rename 変更前文字列 変更後文字列 変更するファイル名
以上のようにrenameコマンドの引数に「変更前の文字列」そして「変更後の文字列」を示した後に、変更したいファイル名を指定します。
実践:renameでファイル名を変更してみる
まずは「name」というファイルをコマンドで作成します。
touch name
ファイルが作成できたか、lsコマンドとgrepを使用して確認します。
[root@localhost ~]# ls | grep -x name
name
「name」というファイルが作成されています。
ではこのファイルを「rename」というファイル名に変更します。
rename name rename name
「name」というファイルの「name」の部分を「rename」に変更しました。
「rename」というファイルに名前が変更されているか確認します。
[root@localhost ~]# ls | grep -x rename
rename
ファイルの名前が「name」から「rename」に変更されています。
Linuxのrenameコマンドで複数のファイル名を一括変更する方法
Linuxのrenameコマンドでは、一括でファイル名を変更する事が可能です。
rename 変更前文字列 変更後文字列 ファイル1 ファイル2 ・・・
上の構文のようにファイル名をスペース区切りで追加していけば、一括でファイル名を変更できます。
実践:複数のファイルを一括でrenameしてみる
先程と同じようにファイルを3つ作成し、確認します。
[root@localhost ~]# touch name1 name2 name3
[root@localhost ~]# ls | grep name
name1
name2
name3
ファイルが出来ているので、この3ファイルの名前を一括で変更し、確認します。
[root@localhost ~]# rename name rename name1 name2 name3
[root@localhost ~]# ls | grep rename
rename1
rename2
rename3
複数のファイルでも一括で名前変更できています。
ファイル名が共通している時は、ワイルドカードを使用するとコマンドが短くなります。
[root@localhost ~]# rename name rename name*
[root@localhost ~]# ls | grep rename
rename1
rename2
rename3
意図しない変更になる可能性もある為、renameする時はしっかり対象を指定した方が無難です。
renameコマンドでエラーで名前変更できない場合
ファイル名を変更しようとしても、エラーで出来ない場合もあります。
[testuser3@localhost]$ rename 変更前文字列 変更後文字列 ファイル名
rename: 変更元ファイル名: rename to 変更先ファイル名 failed: 許可がありません
許可がありませんと出ています。rename出来ない原因はユーザーに権限がない事です。
権限を持つrootユーザーに切り替えて、renameしましょう!
またrenameしようとして「コマンドがみつかりません」といったエラーが出た場合は、そもそもrenameコマンドがインストールされていません。以下の記事を参照してインストールしましょう!
Linuxサーバーの他コマンドでファイル名を変更する
ファイル名を変更するコマンドに「mv」があります。
ファイルを移動するコマンドですが、以下の構文にするとファイル名を変更できます。
mv 元ファイル名 移動先ファイル名
これで「元ファイル名」が「移動先ファイル名」という名前になります。
renameとmvコマンドどちらが良いか
簡単なファイル名変更であれば、コマンドも短くmvの方が楽です。しかし名前一括変更ができません。
ファイルを一括で変更するならrenameコマンドにしましょう。
まとめ:Linuxサーバーでrenameコマンドの使い方
Linuxでrenameコマンドの基礎構文を以下に示します。
rename 変更前文字列 変更後文字列 変更するファイル名
Linuxのrenameコマンドでは、ファイル名をスペース区切りで追加する事で一括でファイル名を変更する事が可能です。
rename 変更前文字列 変更後文字列 ファイル1 ファイル2 ・・・
ファイル名が共通するのであれば、ワイルドカードも使用可能
rename 変更前文字列 変更後文字列 ファイル名共通部分*
ファイル名を変更するその他のコマンドでmvがある。
複数ファイル名一括変更はrenameコマンドしか出来ない。