アンドロイド

Linuxでファイルとディレクトリの名前を変更する方法

目次:

Anonim

ファイルとディレクトリの名前を変更することは、Linuxシステムで頻繁に実行する必要がある最も基本的なタスクの1つです。

単一のファイルの名前を変更するのは簡単ですが、複数のファイルの名前を一度に変更することは、特にLinuxを初めて使用するユーザーにとっては難しいことです。 GUIファイルマネージャを使用するか、コマンドラインターミナルを使用してファイルの名前を変更できます。

このチュートリアルでは、 mv コマンドと rename コマンドを使用してファイルとディレクトリの名前を変更 rename 方法を示します。

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

mv コマンド(moveの略)は、ファイルをある場所から別の場所に名前変更または移動するために使用されます。 mv コマンドの構文は次のとおりです。

mv source destination

source は1つ以上のファイルまたはディレクトリであり、 destination は単一のファイルまたはディレクトリです。

  • 複数のファイルを source として指定する場合、 destination はディレクトリでなければなりません。 この場合、 source ファイルはターゲットディレクトリに移動されます。単一のファイルを source として指定し、ターゲットターゲットが既存のディレクトリである場合、ファイルは指定されたディレクトリに移動されます。ファイルの名前を変更するには、 source としての単一ファイル、および destination ターゲットとしての単一ファイル。

たとえば、ファイル file1.txt 名前を file1.txt に変更するには、 file1.txt file2.txt を実行します。

mv file1.txt file2.txt

mvコマンドを使用して複数のファイルの名前を変更する

mv コマンドは、一度に1つのファイルのみの名前を変更できますが、 find やinside bash forまたはwhileループなどの他のコマンドと組み合わせて使用​​して、複数のファイルの名前を変更できます。

次の例は、Bash forループを使用して、 .html 拡張子を .php 変更することにより、現在のディレクトリ内のすべての .html ファイルの名前を変更する方法を示しています。

for f in *.html; do mv -- "$f" "${f%.html}.php" done

コードを行ごとに分析してみましょう。

  • 最初の行はforループを作成し、 .html 縁取られたすべてのファイルのリストを反復処理します。2行目はリストの各項目に適用され、ファイルを .html .php 置き換えて新しいものに移動します。 部分 ${file%.html} は、シェルパラメーター展開を使用して、filename.doneから .html 部分を削除しています。ループセグメントの終わりを示します。

上記と同じ find を実現するために、 mv コマンドを find と組み合わせて使用​​することもできます。

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

findコマンドは、 -exec スイッチを使用して、現在のディレクトリ内の .html で終わるすべてのファイルを1つずつ mv コマンドに渡します。 文字列 {} は、現在処理中のファイルの名前です。

上記の例からわかるように、 mv コマンドを使用して複数のファイルの名前を変更するのは簡単な作業ではありません。Bashスクリプトの十分な知識が必要だからです。

renameコマンドを使用してファイルの名前を変更する

rename コマンドは、複数のファイルの名前を変更するために使用されます。 このコマンドは、正規表現の基本的な知識を必要とするため、 mv よりも高度です。

rename コマンドには、構文が異なる2つのバージョンがあります。 このチュートリアルでは、perlバージョンの rename コマンドを使用します。 システムにこのバージョンがインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。

  • UbuntuおよびDebianに名前変更をインストールする

    sudo apt install rename

    CentOSおよびFedoraに名前変更をインストールする

    sudo yum install prename

    Arch Linuxにrenameをインストールします

    yay perl-rename ## or yaourt -S perl-rename

rename コマンドの構文は次のとおりです。

rename perlexpr files

rename コマンドは、指定された perlexpr 正規表現に従ってすべての files 名前を変更し files 。 perlの正規表現についてはこちらをご覧ください。

たとえば、次のコマンドは、拡張子が .html すべてのファイルを .php 変更します。

rename 's/.html/.php/' *.html

-n 引数を使用すると、名前を変更せずに、名前を変更するファイルの名前を出力できます。

rename -n 's/.html/.php/' *.html

出力は次のようになります。

rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)

デフォルトでは、名前変更コマンドは既存のファイルを上書きしません。 -f 引数を渡すと、既存のファイルを上書きできます。

rename -f 's/.html/.php/' *.html

renameコマンドの使用方法の一般的な例を次に示します。

  • ファイル名のスペースをアンダースコアに置き換えます

    rename 'y/ /_/' *

    ファイル名を小文字に変換する

    rename 'y/AZ/az/' *

    ファイル名を大文字に変換します

    rename 'y/az/AZ/' *

結論

これで、 mv コマンドと rename コマンドを使用してファイルの rename 方法を十分に理解できたはずです。 もちろん、Linuxには mmv などのファイル名を変更する他のコマンドがあります。 コマンドラインに怖がっている新しいLinuxユーザーは、メタモルフォーゼなどのGUIバッチ名前変更ツールを使用できます。

mvターミナルの名前を変更