GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでディレクトリを削除(削除)する方法

Linuxシステムでディレクトリを削除する方法はいくつかあります。 GnomeのファイルやKDEのドルフィンなどのデスクトップファイルマネージャーを使用している場合は、マネージャーのグラフィカルユーザーインターフェイスを使用してファイルとディレクトリを削除できます。ただし、ヘッドレスサーバーで作業している場合、または一度に複数のディレクトリを削除する場合は、コマンドラインからディレクトリ(フォルダ)を削除するのが最善の方法です。

この記事では、rmdirを使用してLinuxでディレクトリを削除する方法について説明します。 、rm 、およびfind コマンド。

始める前に#

デスクトップファイルマネージャを使用してディレクトリを削除すると、ディレクトリは実際にはゴミ箱に移動され、簡単に復元できます。

この記事で説明されているコマンドを使用してディレクトリを削除すると、完全に復元できないため、コマンドラインからファイルまたはディレクトリを削除する場合は特に注意してください。

ほとんどのLinuxファイルシステムでは、ディレクトリを削除するには、ディレクトリとそのコンテンツに対する書き込み権限が必要です。そうしないと、「操作は許可されていません」というエラーが発生します。

スペースを含むディレクトリ名は、円記号(/)でエスケープする必要があります 。

rmdirを使用したディレクトリの削除 #

rmdir 空のディレクトリを削除するためのコマンドラインユーティリティです。ディレクトリが空かどうかを確認せずに、ディレクトリが空の場合にのみ削除する場合に便利です。

rmdirでディレクトリを削除するには 、コマンドに続けて、削除するディレクトリの名前を入力します。たとえば、dir1という名前のディレクトリを削除するには 次のように入力します:

rmdir dir1

ディレクトリが空でない場合、次のエラーが発生します:

rmdir: failed to remove 'dir1': No such file or directory

この場合、rmを使用する必要があります コマンドを実行するか、ディレクトリの内容を手動で削除してから削除してください。

rmを使用したディレクトリの削除 #

rm ファイルとディレクトリを削除するためのコマンドラインユーティリティです。 rmdirとは異なり rm コマンドは、空のディレクトリと空でないディレクトリの両方を削除できます。

デフォルトでは、オプションなしで使用した場合rm ディレクトリは削除されません。空のディレクトリを削除するには、-dを使用します (--dir )オプションを選択し、空でないディレクトリを削除します。そのすべてのコンテンツは-rを使用します。 (--recursive または-R )オプション。

たとえば、dir1という名前のディレクトリを削除します 入力するすべてのコンテンツと一緒に:

rm -r dir1

ディレクトリまたはディレクトリ内のファイルが書き込み禁止になっている場合は、削除の確認を求めるメッセージが表示されます。プロンプトを表示せずにディレクトリを削除するには、-fを使用します オプション:

rm -rf dir1

複数のディレクトリを一度に削除するには、rmを呼び出します コマンドの後に、スペースで区切られたディレクトリの名前が続きます。以下のコマンドは、リストされている各ディレクトリとその内容を削除します。

rm -r dir1 dir2 dir3

-i オプションはrmに指示します 各サブディレクトリとファイルの削除を確認するように求めるプロンプトが表示されます。ディレクトリに多くのファイルが含まれている場合、これは少し煩わしい可能性があるため、-Iの使用を検討してください。 削除を続行する前に一度だけプロンプトを表示するオプション。

rm -rI dir1

ディレクトリを削除するには、yと入力します Enterを押します 。

rm: remove 1 argument recursively? y

通常の拡張を使用して、複数のディレクトリを照合および削除することもできます。たとえば、_bakで終わる現在のディレクトリ内のすべての第1レベルのディレクトリを削除するには 、次のコマンドを使用します:

rm -r *_bak

ディレクトリを削除するときに定期的な拡張を使用すると、リスクが生じる可能性があります。最初に、lsを使用してディレクトリを一覧表示することをお勧めします。 rmを実行する前に、どのディレクトリが削除されるかを確認できるようにするコマンド コマンド。

findを使用してディレクトリを削除する #

find は、指定された式に基づいてファイルとディレクトリを検索し、一致した各ファイルまたはディレクトリに対してアクションを実行できるコマンドラインユーティリティです。

最も一般的なシナリオは、findを使用することです パターンに基づいてディレクトリを削除するコマンド。たとえば、_cacheで終わるすべてのディレクトリを削除するには 現在の作業ディレクトリで、次を実行します:

find . -type d -name '*_cache' -exec rm -r {} +

上記のコマンドを分析してみましょう:

  • /dir -現在の作業ディレクトリ(.)を再帰的に検索します 。
  • -type d -検索をディレクトリに制限します。
  • -name '*_cache' -_cacheで終わるディレクトリのみを検索します
  • -exec -オプションの引数(この場合はrm -r)を使用して外部コマンドを実行します 。
  • {} + -見つかったファイルをrmの最後に追加します コマンド。

すべての空のディレクトリを削除する#

ディレクトリツリー内の空のディレクトリをすべて削除するには、次のコマンドを実行します。

find /dir -type d -empty -delete

使用されるオプションの説明は次のとおりです。

  • /dir -/dirを再帰的に検索します ディレクトリ。
  • -type d -検索をディレクトリに制限します。
  • -empty -検索を空のディレクトリのみに制限します。
  • -delete -サブツリーで見つかったすべての空のディレクトリを削除します。 -delete 空のディレクトリのみを削除できます。

-deleteを使用します 細心の注意を払ってオプション。 findコマンドラインは式として評価され、-deleteを追加すると 最初にオプションを選択すると、コマンドは指定した開始点より下のすべてを削除します。

常に-deleteなしで最初にコマンドをテストしてください オプションで-deleteを使用します 最後のオプションとして。

/ bin / rm:引数リストが長すぎます#

このエラーメッセージは、rmを使用すると表示されます 膨大な数のファイルを含むディレクトリを削除するコマンド。これは、ファイルの数がコマンドライン引数のサイズに関するシステム制限よりも大きいために発生します。

この問題にはいくつかの異なる解決策があります。たとえば、cd ディレクトリに移動し、手動で、またはループを使用してサブディレクトリを1つずつ削除します。

最も簡単な解決策は、最初にfindを使用してディレクトリ内のすべてのファイルを削除することです。 コマンドを実行してからディレクトリを削除します:

find /dir -type f -delete && rm -r /dir

結論#

rmを使用 およびfind さまざまな基準に基づいてディレクトリをすばやく効率的に削除できます。

ディレクトリの削除はシンプルで簡単なプロセスですが、重要なデータを削除しないように注意する必要があります。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Linuxでホームディレクトリのユーザーアカウントを削除する方法

  2. Linuxでディレクトリを再帰的に検索および削除する方法

  3. Linuxでディレクトリとフォルダを削除する方法は?

  1. Linuxでディレクトリの名前を変更する方法

  2. Linuxでディレクトリを削除/削除する5つの実用的な例

  3. LinuxのNOTディレクトリのディレクトリ内のファイルのみを削除します

  1. Linuxでファイルまたはディレクトリを削除(削除)する方法

  2. Linuxでディレクトリを削除する方法

  3. Linuxを使用してディレクトリとファイルを削除する方法