はじめに
Linuxには、GUIや複数の専用端末コマンドの使 これにより、個々のファイルの名前を比較的簡単に変更できますが、一度に複数のファイルの名前を変更するのは難しい場合があります。
このチュートリアルでは、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
コマンドは単独で単一のファイルの名前を変更します。 ただし、他のコマンドと組み合わせると、同時に複数のファイルの名前を変更することができます。一つの方法は、
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"' \;
別の方法は、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
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 -S
rename
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
2. ファイル名の一部を置き換える
ファイル名の別の部分を置き換えると、同じ構文に従います。 Example1の名前を変更します。txt、例2。txt、およびexample3。txtをtest1にします。txt、test2。txt、およびtext3。txt、使用:
rename -v 's/example/test/' *.txt
3. ファイル名の一部を削除する
rename
オプションを使用すると、式の置換部分を省略してファイル名の一部を削除することもできます。 たとえば、exampleをexに短縮したい場合:rename -v 's/ample//' *.txt
4. 類似した名前のファイルの名前を変更する
rename
オプションの別の使用法は、類似した名前のファイルの名前を変更することです。 たとえば、testの名前にexampleとsampleを含むファイルの名前を変更したい場合は、次のようにします:rename -v 's/(ex|s)ample/test/' *.txt
5. ファイルの名前を文字ごとに変更
rename
コマンドを使用すると、translate式を使用して文字ごとにファイルの名前を変更することもできます。 たとえば、example fileという名前の複数のファイルの名前を変更する場合は、空白をアンダースコア(_)に置き換えます:rename -v 'y/ /\_/' *.txt
6. 小文字の変換
ファイル名の小文字を大文字に変換するには、次を使用します:
rename -v 'y/a-z/A-Z/' *.txt
7. 大文字を変換する
式の大文字と小文字の順序を切り替えると、逆も機能します:
rename -v 'y/A-Z/a-z/' *.TXT
注:大文字と小文字を変更するときは、ファイル拡張子も変更されるので注意してください。
結論
このチュートリアルを読んだ後、Linuxの
mv
とrename
コマンドを使用してファイルの名前を変更できるはずです。Linuxコマンドの使用についての詳細は、Linuxコマンドのチートシートを参照してください。