はじめに

Linuxには、GUIや複数の専用端末コマンドの使 これにより、個々のファイルの名前を比較的簡単に変更できますが、一度に複数のファイルの名前を変更するのは難しい場合があります。

このチュートリアルでは、LinuxターミナルでLinuxのファイル名を変更するために使用できるさまざまなコマンドについて説明します。

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

前提条件

  • Linuxディストリビューションを実行しているシステム
  • sudo権限を持つアカウント
  • ターミナルウィンドウ/コマンドラインへのアクセス
  • VimやNano3907>(Move)コマンドは、端末からファイルやディレクトリを移動するために使用されます。 次の構文を使用します:
    mv 

    mvコマンドを使用するときに宛先としてディレクトリを指定すると、ソースファイルはそのディレクトリに移動します。 宛先が別のファイル名の場合、mvコマンドはソースファイルの名前を代わりにその名前に変更します。

    注:linuxでディレクトリを移動するガイドのmvコマンドの使用方法の詳細については、こちらを参照してください。

    mvコマンド

    で単一のファイルの名前を変更するmvコマンドをデフォルトの構文で使用すると、単一のファイルの名前を変更できます:

    mv 

    たとえば、example1の名前を変更したい場合。txtをexample2に入力します。txt、私たちは使用します:

    mv example1.txt example2.txt

    コマンドが成功した場合は出力がないため、lsコマンドを使用して名前が変更されているかどうかを確認しています:

    ls -l
    mvコマンドを使用して単一のファイルの名前を変更する

    mvコマンド

    を使用して複数のファイルの名前を変更すると、mvコマンドは単独で単一のファイルの名前を変更します。 ただし、他のコマンドと組み合わせると、同時に複数のファイルの名前を変更することができます。

    一つの方法は、findコマンドを使用して類似した名前の複数のファイルを選択し、mvコマンドを使用して名前を変更することです:

    find . -depth -name "" -exec sh -c 'f="{}"; mv -- "$f" "${f%}"' \;

    この構文を使用して、findコマンドは現在のファイル名の要素を検索パラメータとして定義します。 次に、-execは、検索に一致するすべてのファイルに対してmvコマンドを実行し、現在のファイル名を新しいファイル名に変更します。

    たとえば、example1がある場合。txt、例2。txt、およびexample3。txtとに拡張子を変更したいです.pdf:

    find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
    findコマンドとmvコマンドを使用して複数のファイルの名前を変更する

    別の方法は、bashスクリプトの<strong>for</strong> ループの一部としてmvコマンドを使用することです。

    同じ例を使用して、nanoなどのテキストエディタを使用してbashスクリプトファイルを作成して開くことから始めます:

    sudo nano rename_files.sh

    注:linuxでのファイルとディレクトリの管理にbashスクリプトを使用する方法の詳細については、こちらを参照してください。

    スクリプトに次の行を追加します:

    #!/bin/bashfor f in *.txt; do mv -- "$f" "${f%.txt}.pdf"done

    上記のスクリプトでは:

    • 最初の行は、現在のディレクトリで終わるすべてのファイルを検索するようにスクリプトに指示します。txt。
    • 二行目は、見つかった各ファイルに対してmvコマンドを使用して置換します。txt拡張子付き.pdf。
    • 第三の行はループセグメントを終了します。

    Ctrl+Xを押し、Yを入力してEnterを押して、スクリプトへの変更を保存して終了します。

    shコマンドを使用してスクリプトを実行します:

    sh rename_files.sh
    bashスクリプトを使用して複数のファイルの名前を変更する

    renameコマンドでファイルの名前を変更

    renameコマンドは、Linuxで複数のファイルまたはディレクトリの名前を変更するために使用されます。 これはmvコマンドよりも多くの機能を提供しますが、Perl式の基本的な知識を必要とするため、使用するのがより困難な場合があります。

    renameコマンドのインストール方法

    多くのLinuxディストリビューションでは、renameコマンドはデフォルトでは使用できません。 システムにrenameコマンドがない場合は、次のコマンドを使用してインストールします:

    • UbuntuとDebianの場合はsudo apt install rename
    • を使用CentOSとFedoraの場合はsudo yum install prename
    • を使用Arch Linuxの場合はsudo pacman -Srename

    renameコマンド構文とオプション

    Perl正規表現には、match、substitute、translateの三つのタイプがあります。….. renameコマンドは、substitute式とtranslate式を使用してファイル名とディレクトリ名を変更します。

    置換式は、ファイル名の一部を別の文字列に置き換えます。 彼らは次の構文を使用します:

    rename 's///' 

    この構文を使用すると、コマンドはfilename要素の最初の出現箇所を置換箇所に置き換えてファイルの名前を変更します。 上記のコマンドで:

    • rename: renameコマンドを起動します。
    • : コマンドの実行方法を変更するオプションの引数を提供します。
    • s: 代替式を示します。
    • : 置換するファイル名の一部を指定します。
    • : 現在のファイル名の部分の置換を指定します。
    • : 名前を変更するファイルを定義します。

    translate式は、ある文字列を別の文字列に変換します。 このタイプの式では、次の構文が使用されます:

    rename 'y///' 

    translate式を使用したrenameコマンドの例:

    rename 'y/abc/xyz/'

    この例では、ファイル名のすべてのa文字がxに、すべてのb文字がyに、すべてのc文字がzに置き換えられます。

    renameコマンドでは、次のオプションを使:

    • -a: 最初の要素だけではなく、filename要素のすべての出現箇所を置き換えます。
    • -f: 既存のファイルを強制的に上書きします。
    • -h: ヘルプテキストを表示します。
    • -i: 既存のファイルを上書きする前にプロンプトを表示します。
    • -l: 最初の要素ではなく、filename要素の最後の出現箇所を置き換えます。
    • -n: ドライランを実行し、永続的な変更は行いません。 詳細な出力(-v)と組み合わせるのが最適です。
    • -s: シンボリックリンクの代わりにターゲットの名前を変更します。
    • -v: 出力の詳細バージョンを表示します。
    • -V: コマンドのバージョンを表示します。

    renameコマンド例

    1. ファイル拡張子を変更する

    最後の例に戻り、ファイル拡張子を変更します。txtへ。pdf、使用:

    rename -v 's/.txt/.pdf/' *.txt
    renameコマンドを使用してファイル拡張子を置き換える

    2. ファイル名の一部を置き換える

    ファイル名の別の部分を置き換えると、同じ構文に従います。 Example1の名前を変更します。txt、例2。txt、およびexample3。txtをtest1にします。txt、test2。txt、およびtext3。txt、使用:

    rename -v 's/example/test/' *.txt
    renameコマンドを使用して複数のファイルの名前を変更する

    3. ファイル名の一部を削除する

    renameオプションを使用すると、式の置換部分を省略してファイル名の一部を削除することもできます。 たとえば、exampleをexに短縮したい場合:

    rename -v 's/ample//' *.txt
    renameコマンドを使用してファイル名の一部を削除する

    4. 類似した名前のファイルの名前を変更する

    renameオプションの別の使用法は、類似した名前のファイルの名前を変更することです。 たとえば、testの名前にexampleとsampleを含むファイルの名前を変更したい場合は、次のようにします:

    rename -v 's/(ex|s)ample/test/' *.txt
    renameコマンドを使用して、類似した名前の複数のファイルの名前を変更します

    5. ファイルの名前を文字ごとに変更

    renameコマンドを使用すると、translate式を使用して文字ごとにファイルの名前を変更することもできます。 たとえば、example fileという名前の複数のファイルの名前を変更する場合は、空白をアンダースコア(_)に置き換えます:

    rename -v 'y/ /\_/' *.txt
    renameコマンドを使用したファイル名からの空白の削除

    6. 小文字の変換

    ファイル名の小文字を大文字に変換するには、次を使用します:

    rename -v 'y/a-z/A-Z/' *.txt
    renameコマンドを使用したファイル名の小文字から大文字への変換

    7. 大文字を変換する

    式の大文字と小文字の順序を切り替えると、逆も機能します:

    rename -v 'y/A-Z/a-z/' *.TXT
    renameコマンドを使用したファイル名の大文字から小文字への変換

    注:大文字と小文字を変更するときは、ファイル拡張子も変更されるので注意してください。

    結論

    このチュートリアルを読んだ後、Linuxのmvrenameコマンドを使用してファイルの名前を変更できるはずです。

    Linuxコマンドの使用についての詳細は、Linuxコマンドのチートシートを参照してください。

コメントを残す

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