このチュートリアルでは、さまざまなツールを使用してLinuxで一度に複数のファイルの名前を変更する方法を学習します。ここで提供されるすべての例はUbuntuでテストされていますが、すべてのLinuxオペレーティングシステムで動作するはずです。
はじめに
ご存知かもしれませんが、 mv
を使用しています LinuxおよびUnixライクなオペレーティングシステムでファイルとディレクトリの名前を変更または移動するコマンド。
ただし、mv
コマンドは、ファイルのバッチ名前変更を一度にサポートしません。一度に名前を変更できるファイルは1つだけです。一度に複数のファイルの名前を変更したい場合はどうしますか?心配しないでください!
Linuxでファイルの名前を一括変更するために利用できるユーティリティは他にもいくつかあります。
Linuxで一度に複数のファイルの名前を変更する
大量のファイルの名前を一括変更するための多くのコマンドとユーティリティが存在する可能性があります。これを書いている時点で、ファイルの名前をバッチで変更する8つの異なる方法を知っています。今後、新しい方法に出くわした場合は、リストを更新し続けます。
方法1-mmvを使用してファイルの名前を一括変更
mmv ユーティリティは、LinuxおよびUnixライクなオペレーティングシステムで標準のワイルドカードを使用して、ファイルを一括で移動、コピー、追加、および名前変更するために使用されます。 Debianベースのシステムのデフォルトのリポジトリで利用できます。
mmvをDebian、Ubuntu、Linux Mint、およびPop OSにインストールするには、次のコマンドを実行します。
$ sudo apt-get install mmv
現在のディレクトリに次のファイルがあるとします。
$ ls a1.txt a2.txt a3.txt
ここで、文字"a"
で始まるすべてのファイルの名前を変更します。 "b"
へ 。もちろん、これは数秒で手動で行うことができます。
しかし、何百ものファイルがあり、それらの名前を変更したい場合はどうでしょうか。それはかなり時間のかかるプロセスです。ここがmmv コマンドが役立ちます。
文字"a"
で始まるすべてのファイルの名前を変更するには "b"
へ 、単に実行します:
$ mmv a\* b\#1
ファイルの名前が変更されているかどうかを確認しましょう。
$ ls b1.txt b2.txt b3.txt
ご覧のとおり、すべてのファイルは文字"a"
で始まります (つまり、a1.txt
、a2.txt
、a3.txt
)はb1.txt
に名前が変更されます 、b2.txt
、b3.txt
。
説明
上記の例では、最初のパラメーター(a*
)は'from'
パターンと2番目のパラメータは'to'
パターン(b#1
)。
上記の例のように、mmvは文字'a'
で始まるファイル名を探します 一致したファイルの名前を2番目のパラメータ('to'
)に従って変更します。 パターン。
‘*’
などのワイルドカードを使用します 、‘?’
および‘[]‘
、1つ以上の任意の文字に一致します。ワイルドカード文字はエスケープする必要があることに注意してください。エスケープしないと、シェルによって展開され、mmvはそれらを理解できません。
‘#1′
‘to’
で パターンはワイルドカードインデックスです。 ‘from’
で最初に見つかったワイルドカードと一致します パターン。 ‘#2′
‘to’
で パターンは2番目のワイルドカードと一致します。
この例では、ワイルドカード(アスタリスク)が1つしかないため、#1
と記述します。 。また、ハッシュ記号もエスケープする必要があります。また、パターンを引用符で囲むこともできます。
特定の拡張子を持つすべてのファイルの名前を別の拡張子に変更することもできます。たとえば、すべての.txt
.doc
へのファイル 現在のディレクトリのファイル形式は、次のコマンドを実行するだけです。
$ mmv \*.txt \#1.doc
別の例を示します。次のファイルがあるとしましょう。
$ ls abcd1.txt abcd2.txt abcd3.txt
abc
の最初の出現を置き換えたい xyz
を使用 現在のディレクトリ内のすべてのファイル。どうしますか?
シンプル。
$ mmv '*abc*' '#1xyz#2'
上記の例では、パターンを一重引用符で囲んでいることに注意してください。
「abc」が実際に「xyz」に置き換えられているかどうかを確認しましょう。
$ ls xyzd1.txt xyzd2.txt xyzd3.txt
見る?ファイルabcd1.txt 、 abcd2.txt 、および abcd3.txt 名前がxyzd1.txtに変更されました 、 xyzd2.txt 、および xyzd3.txt 。
mmvコマンドのもう1つの注目すべき機能は、 -n
を使用してファイルの名前を変更する代わりに、出力を出力するだけでよいことです。 以下のようなオプション。
$ mmv -n a\* b\#1 a1.txt -> b1.txt a2.txt -> b2.txt a3.txt -> b3.txt
このようにして、ファイルの名前を変更する前に、mmvコマンドが実際に何を実行するかを簡単に確認できます。
詳細については、manページを参照してください。
$ man mmv
方法2-名前変更ユーティリティを使用してファイルの名前を一括変更
名前の変更 ユーティリティは、名前の最初の式を置換することにより、指定されたファイルの名前を変更します。
renameコマンドは、ほとんどのUnixライクなオペレーティングシステムにプリインストールされています。デフォルトで使用できない場合は、次のコマンドを実行してDebianベースのシステムにインストールします。
$ sudo apt install rename
たとえば、現在のディレクトリに次のファイルがあります。
$ ls abcd1.txt abcd2.txt abcd3.txt
abc
の最初の出現を置き換えましょう xyz
を使用 どこでも見つかりました。これを行うには、次を実行します:
$ rename 's/abc/xyz/' *
ここで、変更が ls
で行われたかどうかを確認します コマンド。
$ ls xyzd1.txt xyzd2.txt xyzd3.txt
場合によっては、ファイルの名前を変更する代わりに、出力を印刷するだけの場合があります。その場合は、 -n
を使用します 名前を実行せずにどの名前変更が発生するかを表示するフラグ:
$ rename -n 's/abc/xyz/' * rename(abcd1.txt, xyzd1.txt) rename(abcd2.txt, xyzd2.txt) rename(abcd3.txt, xyzd3.txt)
ご覧のとおり、上記のコマンドは変更を加えず、代わりにどの名前変更が発生するかを表示するだけです。
-f
を使用して、操作によって既存のファイルが上書きされる場合でも、タスクの名前変更を強制できます。 以下のようなフラグ。
$ rename -f 's/abc/xyz/' *
ファイルを上書きしたくない場合は、「すでに存在する」エラーを防ぐために、ファイルを大文字または小文字に変換する(またはその逆)ことができます。
すべてのファイル名を小文字に変換するには、次のようにします。
$ rename 'y/a-z/A-Z/' *
変更が加えられているかどうかを確認しましょう。
$ ls ABCD1.TXT ABCD2.TXT ABCD3.TXT
はい、ファイル名の文字が小文字から大文字に変更されました。
同様に、ファイル名を小文字に変換するには、次のコマンドを実行します。
$ rename 'y/A-Z/a-z/' *
ファイル名の空白行もすべて削除できます。たとえば、次のファイルがあります。
$ ls Clouds of Sunset.mp3
上記のファイル名のすべての空白を削除するには、次のコマンドを実行します:
$ rename "s/ *//g" *
現在、ファイル名には空白がありません。
$ ls CloudsofSunset.mp3
空白スペースをアンダースコアに置き換えます:
$ rename 's/\s+/_/g' *
ファイル拡張子を変更したいが、ファイル名の名前を変更したくない場合があります。それも可能です。次のコマンドは、すべての*.txt
の名前を変更します *.doc
へのファイル 。
$ rename 's/\.txt$/.doc/' *.txt
lsを使用して変更を確認します コマンド:
$ ls abcd1.doc abcd2.doc abcd3.doc
.txtに一致するすべてのファイルの拡張子を削除するには 、実行:
$ rename 's/\.txt$//' *.txt
詳細については、manページを参照してください。
$ man rename
方法3-renameutilsを使用してファイルの名前を変更する
renameutils は、ファイルとディレクトリの名前変更をより速く簡単にバッチ処理するように設計されたプログラムのセットです。
Renameutilsは、次の5つのプログラムで構成されています。
- qmv(クイックムーブ)、
- qcp(クイックコピー)、
- imv(インタラクティブムーブ)、
- icp(インタラクティブコピー)、
- deurlname(URLを削除)。
Linuxにrenameutilsをインストールする
Renameutilsは、ほとんどのLinuxディストリビューションのデフォルトのリポジトリで使用できます。 Archベースのシステムにインストールするには、コミュニティリポジトリを有効にして、次のコマンドを実行します。
$ sudo pacman -Syu renameutils
Debianベースのシステムの場合:
$ sudo apt install renameutils
それでは、いくつかの例を見てみましょう。
1。 qmv
qmvプログラムは、デフォルトのテキストエディタのディレクトリにあるファイル名を開き、それらを編集できるようにします。
'ostechnix'という名前のディレクトリに次の3つのファイルがあります。
$ ls ostechnix/ abcd1.txt abcd2.txt abcd3.txt
'ostechnix'ディレクトリ内のファイル名の名前を変更するには、次のようにします。
$ qmv ostechnix/
ここで、必要に応じてファイル名を変更します。ファイル名を編集すると、ライブプレビューが表示されます。
または、ディレクトリにcdして、'qmv'
を実行することもできます。 。
ファイルを開くと、次のスクリーンショットに示すように2つの列が表示されます。

左側の列にはソースファイル名が表示され、右側の列には宛先名(編集後に取得する出力ファイル名)が表示されます。
次に、右側のすべての出力名の名前を必要に応じて変更します。

ファイル名の名前を変更したら、ファイルを保存して終了します。
最後に、次の出力が表示されます。
Plan is valid. abcd1.txt -> xyzd1.txt abcd2.txt -> xyzd2.txt abcd3.txt -> xyzd3.txt Regular rename abcd1.txt -> xyzd1.txt abcd2.txt -> xyzd2.txt abcd3.txt -> xyzd3.txt
次に、'ls'
を使用して変更が実際に行われたかどうかを確認します。 コマンド:
$ ls ostechnix/ xyzd1.txt xyzd2.txt xyzd3.txt
見る?すべてのファイルの名前が変更されます。ファイルだけでなく、renameutilsもディレクトリ名の名前を変更します。
これがqmvプログラムの簡単なビデオデモです:

ファイル名を2列形式で編集したくない場合は、次のコマンドを使用して、宛先ファイルの列のみを表示します。
$ qmv -f do ostechnix/
ここで、 '-f'
format
を指します および'do'
destination-only
を参照します 。
これで、宛先列のみが表示されます。これが変更を加える列です。

完了したら、ファイルを保存して閉じます。
詳細については、manページを参照してください。
$ man qmv
2。 qcp
qcpプログラムはqmvのように機能しますが、ファイルの名前を変更する代わりにファイルをコピーします。この場合、同じファイルの2つのインスタンスを取得します。つまり、元のファイルと複製ファイルの両方が保持されます。
$ qcp ostechnix/
右側にリストされているファイル名の名前を変更します。ファイルを保存して終了します。最後に、lsコマンドを使用して行われた変更を確認します。
$ ls ostechnix/ abcd1.txt abcd2.txt abcd3.txt xyzd1.txt xyzd2.txt xyzd3.txt
詳細については、manページを参照してください。
$ man qcp
3。 imv
imvプログラムを使用すると、ファイル名の名前をインタラクティブに変更できます。明らかに、一括名前変更用ではありません。ファイルの名前は1つずつしか変更できませんでした。
$ imv ostechnix/abcd1.txt
ファイル名を好きなように編集し、Enterキーを押して名前を変更します。

詳細については、manページを参照してください。
$ man imv
4。 icp
icpプログラムはimv
と同じです 、ただし、ファイルを移動する代わりにコピーします。
例:
$ icp ostechnix/abcd1.txt
その他の使用例とコマンドについては、manページを参照してください。
$ man icp
mv
を使用して同じことができるのに、開発者がこれら2つのユーティリティを追加した理由はわかりません。 およびcp
コマンド。
5。 deurlname
deurlname プログラムはURLエンコードされた文字(%20
など)を削除します スペースを表す)ファイル名から。一部のプログラム、たとえば w3m 、保存されたファイルにエンコードされた文字を保持する傾向があります。
このツールを使用して、インターネットからダウンロードしたファイル名をクリーンアップできます。
次のファイルをご覧ください。
$ ls omg%20ponnu%20ily%20kannu.mp3
ファイル名にはいくつかの特殊文字と数字が含まれています。クリーンアップする場合は、次を実行するだけです:
$ deurlname omg%20ponnu%20ily%20kannu.mp3
次に、ファイル名がどのように変更されるかを確認します。
$ ls omg ponnu ily kannu.mp3
ファイル名はクリーンで読みやすいです。
詳細については、manページを参照してください。
$ man deurlname
また、このガイドの最後にあるプロジェクトのWebサイトを参照してください。
方法4-vimvを使用して一度に複数のファイルの名前を変更する
名前が示すように、 Vimv Vimを使用してファイルの名前を一括変更するコマンドラインユーティリティです。 編集者。もちろん、 $EDITOR
の値を変更することで、エディターを変更できます。 環境変数。
Vimvをインストールするには、リポジトリのgitcloneを実行します。
$ git clone https://github.com/thameera/vimv.git
vimvバイナリを$PATH
にコピーします 、たとえば/usr/local/bin/
。
$ sudo cp vimv/vimv /usr/local/bin/
最後に、実行可能にします:
$ sudo chmod +x /usr/local/bin/vimv
次に、ディレクトリに移動し、次のコマンドを実行してファイル名を編集します。
$ vimv
Viエディターにファイル名が表示されます。 iを押します インタラクティブモードに切り替えて、Viエディターでテキストを編集する方法でファイル名を編集します。完了したら、 ESC
を押します キーを押して:wq
と入力します 保存して終了します。
ディレクトリ内のファイルの名前を変更する必要があります。これが短いビデオデモです。

詳細については、このガイドの最後にあるプロジェクトのGitHubリポジトリを参照してください。
方法5-Emacsを使用してファイルの名前を一括変更
Emacsエディターがインストールされているシステムの場合は、次の手順に従ってバッチ名の変更を簡単に行うことができます。
1.Emacsエディターを開きます。
2. Alt+x
を押します 次のように入力し、Enterキーを押して、 wdired-mode
に切り替えます。 (「書き込み可能なディレクトリエディタモード」の略)
$ dired
3.ディレクトリへのパスを入力します(例:/home/sk/ostechnix
)名前を変更してENTER
を押すファイルが含まれています キー。
4.次に、 Ctrl+x
を押します。 およびCtrl+q
読み取り/書き込みモードに切り替えます。
5.次に、ファイルの名前を変更します。完了したら、 Ctrl+c
を押します およびCtrl+c
(2回)変更を保存します。変更を中止するには、Ctrl+c
およびCtrl+k
。
デモビデオを見る:

見る?一度に複数のファイルの名前を変更するのは非常に簡単です。
方法6-Thunarファイルマネージャーを使用してファイルの名前を一括変更
Thunarファイルマネージャー 組み込みの一括名前変更 デフォルトのオプション。
Thunarは、ほとんどのLinuxディストリビューションのデフォルトのリポジトリで利用できます。
Archベースのシステムにインストールするには、次のコマンドを実行します。
$ sudo pacman -S thunar
Fedora、RHEL、CentOS、AlmaLinux、Rocky Linuxの場合:
$ sudo dnf install thunar
または、
$ sudo yum install thunar
openSUSEの場合:
$ sudo zypper install thunar
Debian、Ubuntu、Linux Mintの場合:
$ sudo apt-get install thunar
インストールすると、メニューまたはアプリケーションランチャーから一括名前変更ユーティリティを起動できます。ターミナルから起動するには、次のコマンドを使用します。
$ thunar -B
一括名前変更は次のようになります。

プラス記号をクリックして、名前を変更するファイルのリストを選択します。一括名前変更では、ファイルの名前、ファイルのサフィックス、またはファイルの名前とサフィックスの両方の名前を変更できます。
Thunarは現在、次のバルクリネームをサポートしています:
- 日付または時刻を挿入
- 挿入または上書き
- 番号付け
- 文字を削除する
- 検索と置換
- 大文字/小文字
選択リストからこれらの基準の1つを選択すると、変更のプレビューが新しい名前に表示されます。 下のスクリーンショットに示すように、列。

基準を選択したら、ファイルの名前を変更をクリックします ファイルの名前を変更するオプション。
2つ以上のファイルを選択して、Thunar内から一括名前変更を開くこともできます。ファイルを選択したら、F2
または、右クリックしてRename
を選択します 。
推奨される読み物:
- [Bashのヒント]Linuxでフルネームを2回入力せずにファイルの名前を変更する
方法7-KRenameを使用してファイルのリストの名前を変更します
KRenameは、一連の式に基づいてファイルのリストの名前を変更できるバッチファイルの名前変更です。一連の数字を追加したり、大文字と小文字を変更したりするだけで、多数のファイルの名前を変更できます。
KRenameは、KDEディストリビューション用に特別に設計され、デフォルトでインストールされています。他のLinuxディストリビューションにもインストールできます。
たとえば、FedoraにKRenameをインストールするには、次のコマンドを実行します。
$ sudo dnf install krename
アプリケーションランチャーまたはメニューからKRenameアプリケーションを起動し、名前を変更するすべてのファイルをファイルに追加します セクション。

目的地 セクションで、[入力ファイルの名前を変更]オプションが選択されていることを確認してください。

プラグインでは、任意のプラグインを選択できます。プラグインは、ファイルの名前を変更するときにさまざまなタグを提供します。

最後のセクションのセクションでは、使用する名前変更スキームを選択できます。選択したスキームに基づいて、下部にプレビューが表示されます。選択したオプションで問題がなければ、[完了]ボタンをクリックしてファイルの名前を変更します。

名前が変更されたファイルは同じ場所に保存されます。
KRenameは、機能が豊富な名前変更ユーティリティです。ファイルの名前を変更するときに非常に多くのオプションがあります。ほとんどのオプションは自明です。
方法8-Smartfilerenamerを使用して複数のファイルとフォルダーの名前を変更する
Smart File Renamerは、一度に複数のファイルの名前を変更するためのグラフィカルプログラムです。スマートファイルの名前変更を使用すると、マウスを数回クリックするだけで、ファイルとディレクトリの名前を一度に簡単かつ迅速に変更できます。 Linux、macOS、Windowsをサポートするクロスプラットフォームアプリケーションです。他のプログラムとは異なり、それは適切です。無料版の機能は限られています。
SmartFileRenamerはスナップパッケージとして利用できます。次のコマンドを使用してインストールできます:
$ sudo snap install smart-file-renamer
インストールしたら、メニューまたはアプリケーションランチャーから起動します。名前を変更するファイルとディレクトリを追加し、下部にある[名前の変更]ボタンをクリックします。

バッチの名前変更のための多くのルールとフィルターをサポートします。アプリケーションウィンドウの右側でそれらを選択し、[名前の変更]ボタンを押すだけです。
結論
どうぞ!このガイドでは、Linuxでファイルの名前を一括変更する8つの方法について説明しました。複数のファイルの名前を一度に変更できるコマンドラインプログラムとグラフィカルプログラムの両方を提供しています。自分に合ったものを選んで、仕事を終わらせてください。
そして、今のところこれですべてです。これがお役に立てば幸いです。このリストに追加する他の方法を知っていますか?下記のコメント欄に記載してください。それに応じてこのガイドを確認して更新します。