ファイルの名前変更は、Linuxシステムで実行する必要のある最も基本的なタスクの1つです。 GUIファイルマネージャまたはコマンドラインターミナルを使用して、ファイルの名前を変更できます。
1つのファイルの名前を変更するのは簡単ですが、複数のファイルの名前を一度に変更するのは、特にLinuxを初めて使用するユーザーにとっては難しい場合があります。
このチュートリアルでは、mv
の使用方法を説明します。 およびrename
ファイルとディレクトリの名前を変更するコマンド。
mv
を使用してファイルの名前を変更する コマンド#
mv
command(moveの短縮)は、ファイルの名前を変更したり、ある場所から別の場所にファイルを移動したりするために使用されます。 mv
の構文 コマンドは次のとおりです:
mv [OPTIONS] source destination
source
1つ以上のファイル、またはディレクトリとdestination
にすることができます 単一のファイルまたはディレクトリにすることができます。
- 複数のファイルを
source
として指定する場合 、destination
ディレクトリである必要があります。この場合、source
ファイルはターゲットディレクトリに移動されます。 - 単一のファイルを
source
として指定した場合 、およびdestination
ターゲットが既存のディレクトリである場合、ファイルは指定されたディレクトリに移動されます。 - ファイルの名前を変更するには、1つのファイルを
source
として指定する必要がありますdestination
としての単一のファイル ターゲット。
たとえば、ファイルの名前をfile1.txt
に変更するには file2.txt
として 実行します:
mv file1.txt file2.txt
mv
を使用して複数のファイルの名前を変更する コマンド#
mv
コマンドは一度に1つのファイルのみ名前を変更できますが、find
などの他のコマンドと組み合わせて使用できます。 またはbash内for
またはwhile
複数のファイルの名前を変更するためのループ。
次の例は、Bashforループを使用してすべての.html
の名前を変更する方法を示しています。 .html
を変更して、現在のディレクトリ内のファイル .php
の拡張子 。
for f in *.html; do
mv -- "$f" "${f%.html}.php"
done
コードを1行ずつ分析してみましょう:
- 最初の行は
for
を作成します.html
で縁取られているすべてのファイルのリストをループして繰り返します 。 - 2行目はリストの各項目に適用され、ファイルを
.html
を置き換える新しい項目に移動します。.php
を使用 。パーツ${file%.html}
シェルパラメータの展開を使用して.html
を削除しています ファイル名の一部。 done
ループセグメントの終わりを示します。
mv
を使用した例を次に示します。 find
と組み合わせて 上記と同じことを達成するには:
find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
find
コマンドは、.html
で終わるすべてのファイルを渡します 現在のディレクトリでmv
-exec
を使用して1つずつ オプション。文字列{}
現在処理中のファイルの名前です。
上記の例からわかるように、mv
を使用して複数のファイルの名前を変更します コマンドは、Bashスクリプトに関する十分な知識が必要なため、簡単な作業ではありません。
rename
を使用してファイルの名前を変更する コマンド#
rename
コマンドは、複数のファイルの名前を変更するために使用されます。このコマンドは、mv
よりも高度です。 正規表現の基本的な知識が必要なためです。
rename
には2つのバージョンがあります 異なる構文のコマンド。このチュートリアルでは、Perlバージョンのrename
を使用します。 指図。このバージョンがシステムにインストールされていない場合は、ディストリビューションのパッケージマネージャーを使用して簡単にインストールできます。
-
rename
をインストールします UbuntuとDebianでsudo apt install rename
-
rename
をインストールします CentOSとFedoraでsudo yum install prename
-
rename
をインストールします ArchLinuxの場合yay perl-rename ## or yaourt -S perl-rename
rename
の構文 コマンドは次のとおりです:
rename [OPTIONS] perlexpr files
rename
コマンドはfiles
の名前を変更します 指定されたperlexpr
に従って 正規表現。 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)
デフォルトでは、rename
コマンドは既存のファイルを上書きしません。 -f
を渡します 既存のファイルを上書きできるようにするオプション:
rename -f 's/.html/.php/' \*.html
以下は、rename
の使用方法のより一般的な例です。 コマンド:
-
ファイル名のスペースをアンダースコアに置き換えます
rename 'y/ /\_/' \*
-
ファイル名を小文字に変換
rename 'y/A-Z/a-z/' \*
-
ファイル名を大文字に変換
rename 'y/a-z/A-Z/' \*
結論#
mv
の使用方法を説明しました およびrename
ファイルの名前を変更するコマンド。
mmv
など、Linuxでファイルの名前を変更する他のコマンドもあります。 。コマンドラインに不安を感じる新しいLinuxユーザーは、MétamorphoseなどのGUIバッチ名前変更ツールを使用できます。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。