Linuxでディレクトリの名前を変更する方法
Linuxでディレクトリの名前を変更するのは簡単で、多くの方法があります。1つのディレクトリの名前の変更から、多数のディレクトリの検索と名前の変更まで、その方法は次のとおりです。
あなたのデータは安全です
ディレクトリの名前を変更することは、私たち全員が時々行う必要があることです。
ディレクトリを作成してその名前のつづりを間違えた可能性があり、それを修正したいと思います。多くの場合、ディレクトリの目的は時間の経過やプロジェクトの存続期間中に変更され、新しい用途を反映するように名前を変更する必要があります。アーカイブファイルを解凍して、ディレクトリ名が大文字のディレクトリツリーを作成し、それらを小文字にしたい場合があります。
原因に関係なく。ディレクトリの名前を変更しても、ディレクトリに含まれるデータには何の影響もありません。そのデータへのパスは変更されますが、名前が変更されたディレクトリ内のファイルとディレクトリは影響を受けません。
システムディレクトリの名前を変更しないでください。システムファイルとコマンドへのパスを変更すると、穏やかに言えば、コンピュータの動作に悪影響を及ぼします。ディレクトリの名前を変更するために使用する必要がある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
。rename
コアLinuxユーティリティの一部である別の古いコマンドがあります。おそらくrename
、使用したいPerlコマンドをインストールする必要があります。
既存のコマンドとの名前の競合を回避するためrename
に、PerlコマンドはFedoraおよびManjarorename
で呼び出されます。Ubuntuでは、コマンドとは両方とも、という名前のバイナリファイルに解決されるシンボリックリンクです。prename
perl-rename
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 -Sy perl-rename
例を実行する場合は、ディストリビューションに適切なコマンドを使用してください。
名前を変更する最初のステップ
このコマンドrename
はPerlの正規表現を受け取り、それらをファイルまたはディレクトリ、あるいはファイルまたはディレクトリのグループに適用します。
私たちのカタログには他のカタログのコレクションがあります。
ls
それらの名前は、小文字、大文字、および大文字と小文字を組み合わせたものです。適切な式を使用して、それらすべてを小文字に変換できます。
rename 'y/A-Z/a-z/' *
ls
以前は完全に大文字であったか、奇数の大文字が含まれていたかに関係なく、すべてのディレクトリが小文字になりました。
すべての魔法は表現にあります。式は一重引用符” '
“で囲まれています。それがチーム全体の意味です。
- y:これは、最初の文字範囲内の任意の文字を検索し、それを2番目の文字範囲内の対応する文字に置き換えることを意味します。
- / AZ / az /:最初の範囲は「A」から「Z」までのすべての文字で、2番目の範囲は「a」から「z」までのすべての文字です。
- *:アスタリスクのワイルドカードは、これがすべてのディレクトリに適用されることを意味します。
つまり、コマンドは「すべてのディレクトリについて、大文字を同等の小文字に置き換えます」と読み取ります。
rename
明らかに、これは冗長に見えますが、単一のディレクトリの名前を。に変更できます。を使用すると高速になりますmv
。
rename 's/gamma/epsilon-2/' *
ls
この表現の「S」は置換を表します。各ディレクトリをチェックして、その名前が「ガンマ」であるかどうかを確認します。その場合は、「epsilon-2」に置き換えます。ただし、これは「gamma-zeta」というディレクトリにも一致することに注意してください。たとえば、名前を「epsilon-2-zeta」に変更します。
これは、式の最初の句に行の開始” ^
“および行の終わり” “メタ文字を追加することで回避できます。$
ls
rename 's/^gamma$/epsilon-2/' *
ls
これにより、「epsilon-2」ディレクトリは変更されません。
他のコマンドでrenameを使用する
他のコマンドを使用して、作業するディレクトリを見つけることができますrename
。ネストされたディレクトリのセットがあり、「-old」で終わるすべての名前を「-archive」で終わる名前に変更する場合は、とを使用してこれを実現できfind
ますxargs
。
パイプ入力を受け付けないxargs
ため、使用する必要があります。rename
このコマンドxargs
は、パイプ入力を受け取り、コマンドラインパラメーターとして別のコマンドをコマンドラインに追加することで、この問題を解決します。
私たちのチームは次のようになります。
find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"
- 。:現在のディレクトリで検索を開始するようにfindに指示します。もちろん、どちらの方法でもかまいません。
- -depth:深さ優先探索を使用します。これは、より深いネストされたサブディレクトリのコンテンツが、より高いサブディレクトリの前に処理されることを意味します。
- -type d:ファイルではなくディレクトリを探します。
- -name “* -old”:検索ヒント。名前が「-old」で終わるディレクトリを探しています。
- |:findコマンドの出力をコマンドにパイプします
xargs
。 - xargs -r 🙁
-r
空の場合は実行しない)は、適切なディレクトリがない場合にコマンドを実行しないことを意味します。 - 名前を「s/old $ / archive /」に変更:
rename
実行するコマンド。
コマンドの前のディレクトリツリーは次のようになります。
コマンドを実行してみましょう:
また、サブディレクトリを含むすべての関連ディレクトリの名前が変更されていることがわかります。
以外は必要ありませんmv
。GUIアプリケーションが必要な場合は、ファイルブラウザを使用できます。多くのディレクトリの名前を変更する必要がある場合、特にそれらがディレクトリツリー全体に散在している場合は、柔軟性が必要になりますrename
。
コメントを残す