Linuxでディレクトリの名前を変更する方法
公開: 2022-06-16Linuxでディレクトリの名前を変更するのは簡単で、それを実行する方法はたくさんあります。 単一のディレクトリの名前の変更から、多数のディレクトリの検索と名前の変更まで、その方法は次のとおりです。
あなたのデータは安全です
ディレクトリの名前を変更することは、私たち全員が時々行う必要があることです。
ディレクトリを作成してその名前のつづりを間違える可能性があり、それを正しくしたいと思います。 多くの場合、ディレクトリの目的は時間の経過やプロジェクトの存続期間を通じて変化し、新しい用途を反映するように名前を調整する必要があります。 おそらく、アーカイブファイルを解凍し、ディレクトリ名を大文字にしてディレクトリツリーを作成し、それらを小文字にしたい場合があります。
理由が何であれ。 ディレクトリの名前を変更しても、その中に保持されているデータには何の影響もありません。 そのデータへのパスは変更されますが、名前が変更されたディレクトリ内のファイルとディレクトリは変更されません。
システムディレクトリの名前を変更しないでください。 システムファイルとコマンドへのパスを変更すると、控えめに言っても、コンピューターの実行に悪影響を及ぼします。 sudo
を使用してディレクトリの名前を変更する必要がある場合(実際に何をしているのかを理解していない限り)、名前を変更するべきではない可能性があります。
mvコマンドの使用
最も単純なケースでは、本当に必要なのはmv
コマンドだけです。 これはすべてのLinuxディストリビューションに不可欠な部分であるため、インストールするものはありません。
mv
コマンドは、執筆時点で50年以上前のものです。 これは、短くて不可解なコマンドが流行していたUnixの黎明期に由来します。おそらく、テレタイプやダム端末から実際のコンピュータに低速のシリアル回線を通過する必要のある文字の数を減らすためです。
これは実際には「移動」の略で、ディレクトリ間でファイルを移動するために使用できます。 ファイルを既に存在するのと同じ場所に移動して新しい名前を付けると、ファイルの名前が変更されます。 そして、ディレクトリでも同じことができます。
このディレクトリには2つのサブディレクトリがあります。
ls
ディレクトリの名前を変更するには、mvコマンドを使用します。 ディレクトリの現在の名前と新しい名前を指定する必要があります。
mv old-work archive-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 rename
Fedoraでは、コマンドは次のとおりです。
sudo dnf install prename
Manjaroでは、パッケージはperl-rename
と呼ばれます。
sudo pacman-Syperl-名前を変更
例を実行する場合は、ディストリビューションに適切なコマンドを使用してください。
名前を変更する最初のステップ
rename
コマンドは、Perlの正規表現を受け取り、それらをファイルまたはディレクトリ、あるいはファイルまたはディレクトリのグループに適用します。
私たちのディレクトリには、他のディレクトリのコレクションがあります。
ls
それらの名前は、小文字、大文字、および大文字小文字の混合です。 適切な式を使用して、それらすべてを小文字に変換できます。
名前を変更'y/ AZ / az /'*
ls
以前は完全に大文字であったか、奇数の大文字が含まれていたかに関係なく、すべてのディレクトリが小文字になりました。
すべての魔法は表現に含まれています。 式は一重引用符「 '
」で囲まれています。 これがコマンド全体の意味です。
- y :これは、最初の範囲の文字で任意の文字を検索し、それを2番目の範囲の文字の対応する文字に置き換えることを意味します。
- / AZ / az / :最初の範囲は「A」から「Z」までのすべての文字で、2番目の範囲は「a」から「z」までのすべての文字です。
- * :アスタリスクのワイルドカードは、これをすべてのディレクトリに適用することを意味します。
つまり、コマンドは「すべてのディレクトリについて、大文字を同等の小文字に交換する」と読み取ります。
明らかに、1つのディレクトリの名前をrename
に変更することはできますが、それはやり過ぎです。 mv
を使用するとより速くなります。
's / gamma /epsilon-2/'の名前を変更します*
ls
この表現の「s」は代用を意味します。 各ディレクトリをチェックして、その名前が「ガンマ」であるかどうかを確認します。 そうである場合は、「epsilon-2」に置き換えられます。 ただし、これは「gamma-zeta」というディレクトリとも一致することに注意してください。たとえば、名前を「epsilon-2-zeta」に変更します。
これを回避するには、式の最初の句に文字列の開始「 ^
」と文字列の終了「 $
」のメタ文字を追加します。
ls
's / ^ gamma $ /epsilon-2/'の名前を変更します*
ls
これにより、ディレクトリ「epsilon-2」は変更されません。
他のコマンドでrenameを使用する
他のコマンドを使用して、名前をrename
するディレクトリを見つけることができます。 ネストされたディレクトリのセットがあり、「-old」で終わるディレクトリの名前を「-archive」で終わるように変更する場合は、 find
とxargs
を使用してこれを実現できます。
rename
はパイプ入力を受け入れないため、 xargs
を使用する必要があります。 xargs
コマンドは、パイプ入力を受け入れ、別のコマンドのコマンドラインにコマンドラインパラメーターとして追加することで、この問題を解決します。
コマンドは次のようになります。
探す 。 -depth -type d -name "* -old" | xargs -r rename "s / old $ / archive /"
- 。 :現在のディレクトリで検索を開始するようにfindに指示します。 もちろん、これはどのような道でもかまいません。
- -depth :深さ優先探索を使用します。 これは、より深いネストされたサブディレクトリのコンテンツが、より高いサブディレクトリの前に処理されることを意味します。
- -type d :ファイルではなくディレクトリを検索します。
- -name“ * -old” :検索の手がかり。 名前が「-old」で終わるディレクトリを探しています。
- | :findからの出力を
xargs
コマンドにパイプしています。 - xargs -r :
-r
(空の場合は実行されません)は、一致するディレクトリがない場合にコマンドを実行しないことを意味します。 - rename“ s / old $ / archive /” :実行
rename
コマンド。
コマンドの前のディレクトリツリーは次のようになります。
コマンドを実行します。
また、ネストされたディレクトリを含む、一致するすべてのディレクトリの名前が変更されていることがわかります。
コース用の馬
ディレクトリの名前を変更するのに、 mv
以外は必要ありません。 GUIアプリケーションが必要な場合は、ファイルブラウザを使用できます。 名前を変更するディレクトリがたくさんある場合、特にそれらがディレクトリツリー全体に散在している場合は、 rename
の柔軟性が必要になります。
関連: Linuxターミナルからファイルを管理する方法:知っておくべき11のコマンド