重要なポイント
- Linux でディレクトリの名前を変更しても、ディレクトリ内のデータは損なわれません。データへのパスのみが変更され、ファイルとディレクトリはそのまま残ります。
- 「mv」コマンドは、Linux でディレクトリの名前を変更するために最も簡単で最も一般的に使用される方法です。
- より複雑な名前変更タスクを実行する必要がある場合は、Perl 式を使用した「rename」コマンドが強力で柔軟なオプションを提供します。 Linux ディストリビューションに適切なバージョンを必ずインストールしてください。
Linux でディレクトリの名前を変更するのは簡単で、方法はたくさんあります。単一のディレクトリの名前変更から、多数のディレクトリの検索と名前変更まで、その方法を次に示します。
フォルダーの名前を変更してもデータは損なわれません
ディレクトリの名前を変更することは、誰もが時々行う必要があることです。
ディレクトリを作成してその名前のスペルを間違える可能性があり、それを正しく設定したいと考えます。多くの場合、ディレクトリの目的は時間の経過やプロジェクトの存続期間を通じて変化するため、新しい用途を反映するように名前を調整する必要があります。おそらく、アーカイブ ファイルを解凍すると、ディレクトリ名が大文字でディレクトリ ツリーが作成されたので、それらを小文字にしたいと考えているでしょう。
理由が何であれ、ディレクトリの名前を変更しても、ディレクトリ内に保持されているデータには何も影響しません。そのデータへのパスは変更されますが、名前を変更したディレクトリ内の ファイルとディレクトリは 変更されません。
システム ディレクトリの
名前は変更
しないでください
。システム ファイルやコマンドへのパスを変更すると、控えめに言っても、コンピュータの実行に悪影響を及ぼします。ディレクトリの名前を変更するために
sudo
を使用する
必要がある場合、何をしているのかよくわかっていない限り、名前を変更すべきではない可能性があります。
mv コマンドの使用
最も単純なケースでは、実際に必要なのは
mv
コマンドだけです。これはすべての Linux ディストリビューションに不可欠な部分であるため、インストールするものは何もありません。
mv
コマンドは、この記事の執筆時点で 50 年以上前から存在しています。これは、短くて不可解なコマンドが流行していた
Unix
の夜明けに起源を持ち、おそらく
テレタイプ
やダム端末から実際のコンピュータまで遅いシリアル回線を経由しなければならない文字数を減らすためでした。
これは実際には「move」の略で、ファイルをディレクトリからディレクトリに移動するために使用できます。ファイルを既に存在する場所と同じ場所に移動し、新しい名前を付けると、ファイルの名前が変更されたことになります。ディレクトリでも同じことができます。
このディレクトリには 2 つのサブディレクトリがあります。
ls
ディレクトリの名前を変更するには、mv コマンドを使用します。ディレクトリの現在の名前と新しい名前を指定する必要があります。
MV 旧作アーカイブ-2
名前を変更したいディレクトリが現在のディレクトリにない場合は、ディレクトリ名とパスを指定します。
mv ~/htg/old-work ~/htg/archive-2
ls
ファイルブラウザの使用
ファイル ブラウザはディレクトリの名前を変更できます。 GNOME ファイル アプリケーションのキーストロークは F2 です。ディレクトリを強調表示して F2 キーをタップすると、「フォルダー名の変更」ダイアログが開きます。
新しい名前を入力し、緑色の「名前の変更」ボタンをクリックします。
ディレクトリの名前が変更されます。
それはとても簡単です。
名前変更コマンド
ディレクトリの単純な名前変更よりも複雑なニーズがある場合は、
rename
コマンドの
使用が必要になる場合があります。これにより、Perl 式を使用してファイルやディレクトリの名前を変更できるようになります。これは、ディレクトリの名前を変更するための、より強力かつ柔軟な方法を提供します。
Perl ベースの
rename
コマンドについて説明します。 Linux コア ユーティリティの一部である
rename
と呼ばれる別の古いコマンドがあります。おそらく、使用したい Perl の
rename
コマンドをインストールする必要があります。
既存の
rename
コマンドとの名前の衝突を避けるために、Perl
rename
コマンドは Fedora では
prename
と呼ばれ、Manjaro では
perl-rename
呼ばれます。 Ubuntu では、
rename
コマンドと
prename
コマンドは両方とも
file-rename
というバイナリに解決されるシンボリック リンクです。
したがって、Manjaro ではコマンド
perl-rename
使用する必要がありますが、Fedora では
prename
です。 Ubuntu では、
rename
または
prename
使用できます。
Perl の名前変更をインストールするには、Ubuntu で次のように入力する必要があります。
sudo apt install 名前の変更
Fedora では、コマンドは次のとおりです。
sudo dnf インストールのプレネーム
Manjaro では、パッケージは
perl-rename
と呼ばれます。
sudo pacman -Sy perl-rename
例を実行する場合は、必ずディストリビューションに適切なコマンドを使用してください。
名前変更による最初のステップ
rename
コマンドは Perl 正規表現を受け取り、それらをファイルまたはディレクトリ、またはファイルまたはディレクトリのグループに適用します。
私たちのディレクトリには、他のディレクトリのコレクションがあります。
ls
これらの名前は、小文字、大文字、大文字と小文字が混在しています。適切な表現を使用して、それらをすべて小文字に変換できます。
'y/AZ/az/' の名前を変更 *
ls
以前は完全に大文字であったか、奇妙な大文字が含まれていたかに関係なく、すべてのディレクトリが小文字になりました。
すべての魔法は表現に含まれています。式は一重引用符「
'
」で囲まれます。これがコマンド全体の意味です。
- y : これは、最初の文字範囲内の任意の文字を検索し、それを 2 番目の文字範囲内の対応する文字に置き換えることを意味します。
- /AZ/az/ : 最初の範囲は「A」から「Z」までのすべての文字、2 番目の範囲は「a」から「z」までのすべての文字です。
- * : アスタリスクのワイルドカードは、これをすべてのディレクトリに適用することを意味します。
つまり、このコマンドは「すべてのディレクトリで、大文字を同等の小文字に交換する」となります。
もちろん、
rename
を使用して 1 つのディレクトリの名前を変更することもできますが、これはちょっとやりすぎです。
mv
使用すると速くなります。
's/gamma/epsilon-2/' の名前を変更 *
ls
この式の「s」は置換を意味します。各ディレクトリをチェックして、その名前が「gamma」かどうかを確認します。存在する場合は、「epsilon-2」に置き換えられます。ただし、これは、たとえば、名前を「epsilon-2-zeta」に変更すると、「gamma-zeta」というディレクトリとも一致することになることに注意してください。
これを回避するには、文字列「
^
」の先頭と文字列「
$
」の末尾のメタキャラクターを式の最初の句に追加します。
ls
's/^gamma$/epsilon-2/' の名前を変更 *
ls
これにより、ディレクトリ「epsilon-2」はそのまま残ります。
他のコマンドで名前変更を使用する
他のコマンドを使用して、
rename
を実行するディレクトリを見つけることができます。ネストされたディレクトリのセットがあり、「-old」で終わるディレクトリの名前を「-archive」で終わるように変更したい場合は、
find
と
xargs
使用することで実現できます。
rename
パイプ入力を
受け入れないため、
xargs
を使用する必要があります。
xargs
コマンドは、
パイプされた入力を受け入れ、別のコマンドのコマンド ラインにコマンド ライン パラメーターとして追加することで、この問題を解決します。
コマンドは次のようになります。
探す 。 - Depth -type d -name "*-old" | xargs -r "s/old$/archive/" の名前を変更します
- 。 : find に現在のディレクトリで検索を開始するように指示します。もちろん、これはどのようなパスでも構いません。
- – Depth : 深さ優先検索を使用します。これは、より深くネストされたサブディレクトリの内容が、上位のサブディレクトリよりも前に処理されることを意味します。
- -type d : ファイルではなくディレクトリを検索します。
- -name “*-old” : 検索の手がかり。名前が「-old」で終わるディレクトリを探しています。
-
|
: find からの出力を
xargsコマンドにパイプしています。 -
xargs -r
:
-r(空の場合は実行しない) は、一致するディレクトリがない場合はコマンドを実行しないことを意味します。 -
rename “s/old$/archive/”
: 実行する
renameコマンド。
コマンドを実行する前のディレクトリ ツリーは次のようになります。
次のコマンドを実行します。
また、ネストされたディレクトリも含め、一致するすべてのディレクトリの名前が変更されていることがわかります。
コース用の馬
ディレクトリの名前を変更するには、
mv
以外は何も必要ありません。 GUI アプリケーションを好む場合は、ファイル ブラウザを使用できます。名前を変更するディレクトリが多数ある場合、特にそれらがディレクトリ ツリー全体に分散している場合は、
rename
の柔軟性が必要になります。





