
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
さまざまな基準に基づいてディレクトリをすばやく効率的に削除できます。
ディレクトリの削除はシンプルで簡単なプロセスですが、重要なデータを削除しないように注意する必要があります。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。