ファイルとディレクトリの名前を変更する機能は、すべてのLinuxユーザーが必要とする主要なスキルの1つです。この記事は、Bashの記事シリーズの続きであり、ファイルマネージャー、mv、名前変更ユーティリティなどのさまざまな方法を、検索およびbashループ構造と組み合わせて使用する方法を示しています。わずか3分でLinuxスキルを向上させましょう!
これを行うには、次の2つの方法があります。
- ファイルマネージャー。
- コマンドラインターミナル。

Linuxで新しいユーザーのファイルとディレクトリの名前を変更する最も簡単な方法の1つは、MidnightCommanderを使用することです。
Midnight Commander –有名なNortonCommanderから複製されたコンソールベースのファイルマネージャーです。

UbuntuにMidnightCommanderをインストールするには:
$ sudo apt-get update
$ sudo apt-get -y install mc
CentOS / Fedora / RHELの場合は、別のパッケージマネージャーを使用します:
$ sudo yum -y install mc
Midnight Commanderを起動するには、 mcを実行します コマンド。
ファイルセレクターを移動するには、キーボードの矢印を使用する必要があります。左画面と右画面を切り替えるには、タブを使用する必要があります 鍵。マウスを使用することもできますが、画面に表示されるファイルのみを選択するように制限されています。
ファイルまたはディレクトリの名前を変更するには、カーソルをその上に移動して、 F6を押します。 。正確なキーを忘れた場合は、マウスを使用して[ファイル]メニューから[移動/名前変更]を選択します。

次に、 mvを使用してファイルとディレクトリの名前を変更する方法を見てみましょう。 および名前の変更 コマンド。
「mv」コマンド
mv コマンドはmに役立ちます o v eまたは、ファイルとディレクトリの名前をソースから宛先の場所に変更します。コマンドの構文は次のとおりです。
$ mv [OPTIONS] source destination
ソース および宛先 ファイルまたはディレクトリにすることができます。
名前を変更するにはfile1.txt file2.txt mv、を使用する 次のコマンドを実行します:
$ mv file1.txt file2.txt
folder1の名前を変更するには folder2へのディレクトリ 、次のコマンドを使用します:
$ mv folder1 folder2
mv ユーティリティは一度に1つのファイルのみ名前を変更できますが、他のコマンドと一緒に使用して、複数のファイルの名前を変更できます。これらのコマンドには、検索が含まれます およびBashfor およびながら ループします。
たとえば、ディレクトリ内の特定のファイルタイプのファイル拡張子を変更する必要があるとします。次の例では、すべてのHTMLファイルの名前を変更し、拡張子を htmlから変更します。 php 。
これが例です フォルダ構造:
$ tree example
example
├── index.html
├── page1.html
├── page2.html
└── page3.html
0 directories, 4 files
それでは、例内で次のBashforループ構造を使用してみましょう。 ディレクトリ:
$ cd example
$ for f in *.html; do
mv "$f" "${f%.html}.php"
done
ここでは、例に足を踏み入れました ディレクトリ。次に、 mvを実行しました Bash for-loopのコマンド( for間のコマンド および完了 キーワード)。
何が起こっているのか:
- forループは、 .htmlで終わるファイルをウォークスルーしています。 すべてのファイル名を変数fに入れます 。
- 次に、 mv ユーティリティはすべてのファイルの拡張子を変更しますf .htmlから .phpにファイルする 。式の一部${f%.html} .htmlを削除する責任があります ファイル名から。完全な式「${f%.html}.php」 .phpを追加します .htmlを含まないファイル名に 一部。
期待される結果は次のとおりです。
$ ls -l
total 0
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 index.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page1.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page2.php
-rw-r--r-- 1 amaksimov wheel 0 Dec 5 17:13 page3.php
検索を使用する ユーティリティは、Linuxでファイルとディレクトリの操作を自動化する最も一般的な方法の1つです。
以下の例では、検索を使用しています 同じ目標を達成し、ファイル拡張子を変更します。
検索 ユーティリティは、 .htmlで終わるすべてのファイルを検索します -execを使用します 見つかったすべてのファイル名を1行で記述されたshシェルスクリプトに渡す引数。
$ find . -depth -name "*.html" -exec sh -c 'f="{}"; mv "$f" "${f%.html}.php"' \;
shスクリプト行で、変数 fを設定します ファイル名の値f=” {}” 、その後、おなじみの mvを実行しています 指図。セミコロンは、変数セットコマンドを mvから分割するために使用されます コマンド。
「名前の変更」コマンド
場合によっては、名前の変更を使用する方が簡単です。 mvの代わりにコマンド 。また、他のLinuxコマンドと組み合わせることなく、正規表現で使用できます。
名前の変更の構文は次のとおりです コマンド:
$ rename [OPTIONS] regexp files
たとえば、すべての .phpの名前を変更しましょう ファイルを.htmlに戻す :
$ ls
index.php page1.php page2.php page3.php
$ rename 's/.php/.html/' *.php
$ ls
index.html page1.html page2.html page3.html
名前を変更するために選択したファイルの名前を印刷する場合は、次のコマンドを使用できます。
$ rename -n 's/.html/.php/' *.html
rename(index.html, index.php)
rename(page1.html, page1.php)
rename(page2.html, page2.php)
rename(page3.html, page3.php)
$ ls
index.html page1.html page2.html page3.html
この記事では、さまざまな方法を使用してLinuxでファイルとディレクトリの名前を変更する方法を学びました。この記事がお役に立てば幸いです。もしそうなら、私たちがそれを世界に広めるのを手伝ってください。