GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで一度に複数のファイルの名前を変更する8つの方法

このチュートリアルでは、さまざまなツールを使用して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.txta2.txta3.txt )はb1.txtに名前が変更されます 、b2.txtb3.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つのプログラムで構成されています。

  1. qmv(クイックムーブ)、
  2. qcp(クイックコピー)、
  3. imv(インタラクティブムーブ)、
  4. icp(インタラクティブコピー)、
  5. 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つの方法について説明しました。複数のファイルの名前を一度に変更できるコマンドラインプログラムとグラフィカルプログラムの両方を提供しています。自分に合ったものを選んで、仕事を終わらせてください。

そして、今のところこれですべてです。これがお役に立てば幸いです。このリストに追加する他の方法を知っていますか?下記のコメント欄に記載してください。それに応じてこのガイドを確認して更新します。


Linux
  1. Linux で複数のファイルを見つけて名前を変更する

  2. Linux / Unixで複数のファイルの名前をある拡張子から別の拡張子に変更する方法は?

  3. Linux でファイル名を大文字に変更

  1. Linuxターミナルでファイルの名前を変更します

  2. Linuxでファイルの名前を変更する方法

  3. Linuxで複数のファイルを圧縮する方法

  1. 検索を使用して複数のファイルの名前を変更するにはどうすればよいですか?

  2. 3 つの方法を使用して Linux で複数のファイルの名前をまとめて変更する方法

  3. Linux:複数のファイルのファイル拡張子を削除する