1月 1, 2022

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

Linuxで複数のファイルの名前を変更する ファイルの名前を一括変更するには、mvコマンドと少しのBashスクリプトを使用するか、mmvrenameユーティリティを使用します。 このガイドでは、Linuxコマンドラインから一度に複数のファイルの名前を変更するためのさまざまな例を示します。

このガイドの例は、現在の作業ディレクトリ内のすべてのファイルの名前を変更するために使用されます。 これらのコマンドのほとんどは、簡単に再帰的に動作するように微調整することができます。 いくつかの例では、ディレクトリの名前も変更されることに注意してください。

mvを使用して複数のファイルの名前を変更

mvコマンドはLinuxのデフォルトの部分であり、複数のファイルの名前を変更するために使用できますが、ジョブを実行するには少しスクリプトが必要です。 いくつかの例は、次のような他のデフォルトのLinuxユーティリls, find, xargs, など。

例1. すべてのファイル名を小文字に変更します。

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'A-Z' 'a-z'`"; done

例2. すべてのファイル名を大文字に変更します。

$ for f in `ls | grep `; do mv "$f" "`echo $f | tr 'a-z' 'A-Z'`"; done

例3. すべてのファイル拡張子を.jpegから.jpgに変更します。

$ for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done

例4. すべてのファイルから.bakファイル拡張子を削除します。

$ for f in `ls *.bak`; do mv $f ${f%.*}; done

例5. すべてのファイルに.bakファイル拡張子を追加します。

$ for f in `ls`; do mv $f $f.bak; done

例6. すべてのファイルに”_backup”を追加するには、xargsを使用します。

$ ls * | xargs -I{} mv {} {}_backup

例7。 すべてのファイルを小文字に変更するには、findsed、およびmvコマンドを使用します。

$ find . -maxdepth 1 -type f -name '**'|sed -n 's/\(.*\/\)\(.*\)/mv -n -v -T  \L/p'|sh

例8. find -execおよびmvコマンドを使用して、.log拡張子で終わるすべてのファイルに”_backup”を追加します。

$ find . -type f -name "*.log" -exec mv {} {}_backup \;

例9. 前の例と同様ですが、findの-execオプションをxargsに置き換えて、.log拡張子で終わるすべてのファイルに”_backup”を追加します。

$ find . -type f -name '*log' -print0 | xargs --null -I{} mv {} {}_backup

例10. mvsedを使用して、すべてのファイルのパターンを置き換えます。 これにより、すべての.jpgファイルの”IMG”が”Vacation”に置き換えられます。

$ for f in *.jpg; do mv "$f" "`echo "$f" | sed s/IMG/Vacation/`"; done

例11. 現在のタイムスタンプを.logで終わるすべてのファイルに追加します。 これにより、access.logなどのファイルがaccess_20210418040151.logに変更されます。

$ for f in *.log; do mv "$f" "${f%.log}"_`date +%Y%m%d%H%M%S`.log; done

Rename

で複数のファイルの名前を変更するrenameユーティリティは、一括名前変更タスクを少し簡単にしますが、ユーティリティは常にデフォルトでイ 以下の適切なコマンドを使用して、システムのパッケージマネージャーと一緒にインストールします。

:

$ sudo apt install rename

Fedora、AlmaLinux、CentOS、およびRHEL:

$ sudo dnf install prename

Arch LinuxとManjaro:

$ sudo pacman -S perl-rename
変更を行う前にプレビューする場合は、renameコマンドで-nオプションを使用します。

例1. すべてのファイル名を小文字に変更します。

$ rename 'y/A-Z/a-z/' *

例2. すべてのファイル名を大文字に変更します。

$ rename 'y/a-z/A-Z/' *

例3. すべてのファイルから.bak拡張子を削除します。

$ rename 's/\.bak$//' *.bak

例4. すべての.jpegファイルの拡張子を.jpgに変更します。

$ rename 's/\.jpeg/\.jpg/' *.jpeg

例5. すべてのファイルの大文字の拡張子.JPGを小文字の.jpgに変更します。

$ rename 's/\.JPG/\.jpg/' *.JPG

例6. すべてのファイル名から空白を削除します。

$ rename "s/ *//g" *

例7。 すべてのファイル名の空白をアンダースコアに置き換えます。

$ rename 's/\s+/_/g' *

例8. すべてのファイル名の最初の文字を大文字にします。

$ rename 's/\b(\w)/\U/g' *

例9. すべてのファイル名のパターンを置き換えます。 このコマンドは、すべての.jpgファイルの”IMG”を”Vacation”に置き換えます。

$ rename 's/IMG/Vacation/' *.jpg

例10. ファイル名の一部を削除します。 このコマンドは、すべての.jpgファイルから”IMG_”を削除します。

$ rename 's/IMG_//' *.jpg

例11. すべてのファイルに.bak拡張子を追加します。

$ rename 's/(.*)/.bak/' *

mmvで複数のファイルの名前を変更

mmvユーティリティは、すべてのファイルに文字列を削除したり追加したり、ファイル名の一部を並べ替えたりするなど、パターンに基づいてファイルの名前を変更するのに優れています。 通常、デフォルトではインストールされませんが、以下の適切なコマンドを使用して、システムのパッケージマネージャーでmmvをインストールできます。

:

$ sudo apt install mmv

Fedora、AlmaLinux、CentOS、およびRHEL:

$ sudo dnf install mmv

Arch LinuxとManjaro(AURからインストール):

$ git clone https://aur.archlinux.org/mmv.git$ cd mmv/$ makepkg -si
変更を行う前にプレビューする場合は、mmvコマンドで-nオプションを使用します。

例1. すべての.jpegファイルの拡張子を.jpgに変更します。

$ mmv '*.jpeg' '#1.jpg'

例2. すべてのファイル名を小文字に変更します。

$ mmv '*' '#l1'

例3. すべてのファイル名を大文字に変更します。

$ mmv '*' '#u1'

例4. ファイル名の一部を再配置します。 このコマンドは、パターンSong-Artist.mp3の音楽ファイルをArtist-Song.mp3に変更します。

$ mmv '*-*.mp3' '#2-#1.mp3'

例5. すべてのファイル名で”IMG”の最初の出現を”Vacation”に置き換えます。

$ mmv '*IMG*' '#1Vacation#2'

例6. すべてのファイル名に接頭辞を追加します。 このコマンドは、すべての.logファイルの先頭に”backup_”を追加します。

$ mmv '*.log' 'backup_#1.log'

例7。 すべてのファイル名に接尾辞を追加します。 このコマンドは、すべての.logファイルに”_backup”を追加します。

$ mmv '*.log' '#1.log_backup'

例8. すべての.jpgファイルから”IMG_”接頭辞を削除します。

$ mmv 'IMG_*.jpg' '#1'

例9. すべてのファイルから”_old”接尾辞を削除します。

$ mmv '*_old' '#1'

GUI経由でファイル名を一括変更

コマンドラインが実際にはあなたのものではない場合、GUI経由で複数のファイルの名前を一度に変更すること 仕事をするのに最適なツールの1つは、Thunarに付属の一括名前変更アプリケーションです。

ThunarはXfceのデフォルトのファイルブラウザですが、使用しているデスクトップ環境に関係なくインストールできます。 すでにXfceまたはThunarを使用している場合、Bulk Renameはすでにシステムの一部です。 それ以外の場合は、以下の適切なコマンドを使用して、システムのパッケージマネージャーと一緒にインストールします。

:

$ sudo apt install thunar

Fedora、AlmaLinux、CentOS、およびRHEL:

$ sudo dnf install thunar

Arch LinuxとManjaro:

$ sudo pacman -S thunar

ステップ1. Thunarがインストールされたら、Bulk Renameユーティリティを検索して開きます。

一括名前変更ユーティリティを開く

ステップ2。 名前を変更するファイルを追加するには、プラス記号をクリックします。

一括名前変更アプリケーションにファイルのリストを追加する

ステップ3. オプションのリストから、ファイルで何をしたいかを選択します。 すべてを大文字または小文字に変更したり、日付と時刻を追加したり、特定の位置にテキストを挿入したり、自動番号付けを追加したり、文字を置換したり、ファイル名の特定のパターンを検索したり置換したりすることができます。 以下の例では、すべてのファイルに.txtファイル拡張子を追加しました。

古い名前と新しいファイル名を表示する一括名前変更ツール

ステップ4。 「新しい名前」列でプレビューされた名前の変更に満足したら、「ファイルの名前を変更」をクリックして一括名前変更を実行します。

一括名前変更ジョブのファイナライズ

WSL上の複数のファイルの名前変更

Linux用Windows Subsystemを使用している場合、上記のコマンド、特にファイルを小文字 Windowsでは大文字と小文字が区別されないため、File.txtfile.txt、およびFILE.txtはすべて同じファイルであると見なされます。

FILE.txtの名前をfile.txtに変更しようとすると、ファイルが既に存在するというエラーが表示されます。 この問題を回避するには、次のいずれかの例を使用します。

例1. すべてのファイルの大文字の拡張子.JPGを小文字の.jpgに変更します(既定のユーティリティを使用)。

$ for f in *.JPG; do mv "$f" "${f%.JPG}.jpgaux"; done && for f in *.jpgaux; do mv "$f" "${f%.jpgaux}.jpg"; done

例2. すべてのファイルの大文字の拡張子.JPGを小文字の.jpgに変更します(renameユーティリティを使用)。

$ rename 's/\.JPG$/\.jpgaux/' *.JPG && rename 's/\.jpgaux$/\.jpg/' *.jpgaux

例3. すべてのファイルの大文字の拡張子.JPGを小文字の.jpgに変更します(mmvユーティリティを使用)。

$ mmv '*.JPG' '#1.jpgaux' && mmv '*.jpgaux' '#1.jpg'

例4. すべてのファイル名を小文字に変更します(既定のユーティリティを使用)。

$ for f in `ls | grep `; do mv "$f" "`echo $f.aux | tr 'A-Z' 'a-z'`"; done && for f in `ls *.aux`; do mv $f ${f%.*}; done

例5. すべてのファイル名を小文字に変更します(mmvユーティリティを使用)。

$ mmv '*' '#l1.aux' && mmv '*.aux' '#1'

結論

Linux上のすべての一括名前変更にデフォルトのBashユーティリティを使用することは可能ですが、名前変更ツールとmmvツールを使用すると、はるかに簡 また、コマンドラインでGUIを使用する場合は、Thunarの一括名前変更アプリケーションを使用することもできます。 このガイドの例では、さまざまな名前の変更シナリオをカバーしており、他のニーズに合わせて簡単に適応できます。

コメントを残す

メールアドレスが公開されることはありません。