ファイルの名前変更は、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バッチ名前変更ツールを使用できます。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。