はじめに
Linuxには、GUIや複数の専用ターミナルコマンドの使用など、ファイルの名前を変更するためのいくつかのオプションが用意されています。これにより、個々のファイルの名前を比較的簡単に変更できますが、一度に複数のファイルの名前を変更するのは難しい場合があります。
このチュートリアルでは、LinuxターミナルでLinuxのファイルの名前を変更するために使用できるさまざまなコマンドについて説明します。
前提条件
- Linuxディストリビューションを実行しているシステム
- sudo権限を持つアカウント
- ターミナルウィンドウ/コマンドラインへのアクセス
- VimやNanoなどのテキストエディタへのアクセス
mvコマンドを使用してファイルの名前を変更する
Linux mv
(move)コマンドは、端末からファイルとディレクトリを移動するために使用されます。次の構文を使用します:
mv [options] [source] [destination]
mv
を使用するときに宛先としてディレクトリを指定した場合 コマンドを実行すると、ソースファイルがそのディレクトリに移動します。宛先が別のファイル名の場合、 mv
コマンドは、代わりにソースファイルの名前をその名前に変更します。
mvコマンドを使用して単一ファイルの名前を変更します
mv
を使用する デフォルトの構文を使用したコマンドを使用すると、単一のファイルの名前を変更できます。
mv [options] [current file name] [new file name]
たとえば、 example1.txtの名前を変更する場合 example2.txtに 、使用します:
mv example1.txt example2.txt
コマンドが成功した場合は出力がないため、 ls
を使用しています。 名前が変更されているかどうかを確認するコマンド:
ls -l
mvコマンドを使用して複数のファイルの名前を変更する
それ自体で、 mv
コマンドは単一のファイルの名前を変更します。ただし、他のコマンドと組み合わせると、同時に複数のファイルの名前を変更できます。
1つの方法は、 find
を使用することです。 コマンドを使用して類似した名前の複数のファイルを選択し、 mv
を使用します それらの名前を変更するコマンド:
find . -depth -name "[current file name element]" -exec sh -c 'f="{}"; mv -- "$f" "${f%[current file name element]}[new file name element]"' \;
この構文を使用して、 find
コマンドは、現在のファイル名の要素を検索パラメーターとして定義します。次に、 -exec
mv
を実行します 検索に一致するすべてのファイルに対してコマンドを実行し、現在のファイル名を新しいファイル名に変更します。
たとえば、 example1.txtがある場合 、 example2.txt 、および example3.txt 拡張子を.pdfに変更したい :
find . -depth -name "*.txt" -exec sh -c 'f="{}"; mv -- "$f" "${f%.txt}.pdf"' \;
もう1つの方法は、 mv
を使用することです。 for
の一部としてのコマンド bashスクリプトでループします。
同じ例を使用して、Nano:
などのテキストエディタを使用してbashスクリプトファイルを作成して開くことから始めます。sudo nano rename_files.sh
スクリプトに次の行を追加します。
#!/bin/bash
for f in *.txt; do
mv -- "$f" "${f%.txt}.pdf"
done
上記のスクリプトの場合:
- 最初の行は、 .txtで終わる現在のディレクトリ内のすべてのファイルを検索するようにスクリプトに指示します。 。
- 2行目は
mv
を使用しています .txtを置き換えることが見つかった各ファイルに対するコマンド .pdfの拡張子 。 - 3行目でループセグメントを終了します。
Ctrl + Xを押します 、次に Yと入力します Enterを押します スクリプトへの変更を保存して終了します。
sh
を使用します スクリプトを実行するコマンド:
sh rename_files.sh
名前変更コマンドを使用してファイルの名前を変更
名前の変更
コマンドは、Linuxで複数のファイルまたはディレクトリの名前を変更するために使用されます。 mv
よりも多くの機能を提供します コマンドですが、Perl式の基本的な知識が必要なため、使用が難しい場合があります。
名前変更コマンドのインストール方法
多くのLinuxディストリビューションでは、名前の変更
コマンドはデフォルトでは使用できません。システムに名前の変更
がない場合 コマンド、次のコマンドでインストールします:
- UbuntuとDebianの場合は、
sudo apt install rename
を使用します - CentOSおよびFedoraの場合は、
sudo yum install prename
を使用します - Arch Linuxの場合、
sudo pacman -S
を使用します 名前を変更
コマンド構文とオプションの名前を変更
Perlの正規表現には次の3つのタイプがあります。一致 、代替 および翻訳 。 名前の変更
コマンドは、置換式と変換式を使用して、ファイル名とディレクトリ名を変更します。
置換式は、ファイル名の一部を別の文字列に置き換えます。次の構文を使用します:
rename [options] 's/[filename element]/[replacement]/' [filename]
この構文では、コマンドはfilename要素の最初の出現箇所を置き換えることによってファイルの名前を変更します 交換 。上記のコマンドの場合:
名前の変更
:名前変更コマンドを呼び出します。-
[options]
:コマンドの実行方法を変更するオプションの引数を提供します。 -
s
:代替式を示します。 -
[ファイル名要素]
:置き換えるファイル名の部分を指定します。 -
[replacement]
:現在のファイル名の一部の置換を指定します。 -
[ファイル名]
:名前を変更するファイルを定義します。
translate式は、ある文字列を別の文字列に、文字ごとに変換します。このタイプの式は、次の構文を使用します。
rename [options] 'y/[string 1]/[string 2]/' [filename]
名前の変更
の例 翻訳式を使用したコマンド:
rename 'y/abc/xyz/'
この例では、すべての a ファイル名の文字はxに置き換えられます 、すべての b y 、およびすべての c zによる 。
名前の変更 コマンドは次のオプションを使用します:
-
-a
:最初の要素だけでなく、filename要素のすべての出現箇所を置き換えます。 -
-f
:既存のファイルを強制的に上書きします。 -
-h
:ヘルプテキストを表示します。 -
-i
:既存のファイルを上書きする前にプロンプトを表示します。 -
-l </ code>
:最初のファイル名ではなく、最後に出現するファイル名要素を置き換えます。 -
-n
:ドライランを実行し、永続的な変更は行いません。詳細な出力と組み合わせるのが最適です(-v
。 -
-s
:シンボリックリンクの代わりにターゲットの名前を変更します。 -
-v
:出力の詳細バージョンを表示します。 -
-V
:コマンドのバージョンを表示します。
コマンド例の名前を変更
1。ファイル拡張子を変更する
最後の例に戻り、ファイル拡張子を .txtから変更します。 .pdfへ 、使用:
rename -v 's/.txt/.pdf/' *.txt
2。ファイル名の一部を置き換える
ファイル名の別の部分を置き換えると、同じ構文に従います。 example1.txtの名前を変更するには 、 example2.txt 、および example3.txt test1.txtへ 、 test2.txt 、および text3.txt 、使用:
rename -v 's/example/test/' *.txt
3。ファイル名の一部を削除する
名前の変更
オプションを使用すると、式の置換部分を省略して、ファイル名の一部を削除することもできます。たとえば、例を短くしたい場合 exに :
rename -v 's/ample//' *.txt
4。類似した名前のファイルの名前を変更する
名前の変更
の別の使用法 オプションは、同様の名前のファイルの名前を変更することです。たとえば、 exampleでファイルの名前を変更したい場合 およびサンプル テストするために彼らの名前で :
rename -v 's/(ex|s)ample/test/' *.txt
5。ファイルの名前を文字ごとに変更
名前の変更
コマンドを使用すると、変換式を使用して、文字ごとにファイルの名前を変更することもできます。たとえば、 example fileという名前の複数のファイルの名前を変更する場合 空白スペースをアンダースコア( _ )に置き換えます ):
rename -v 'y/ /\_/' *.txt
6。小文字を変換する
ファイル名の小文字を大文字に変換するには、次を使用します。
rename -v 'y/a-z/A-Z/' *.txt
7。大文字を変換する
式の大文字と小文字の順序を入れ替えると、逆の場合も機能します。
rename -v 'y/A-Z/a-z/' *.TXT