アンドロイド

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

目次:

Anonim

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

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

あなたが始める前に

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

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

ほとんどの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 に表示します。 ディレクトリに多くのファイルが含まれている場合、これは少し面倒な場合があるため、削除を続行する前に1回だけプロンプトを表示する -I オプションを使用することを検討してください。

rm -rI dir1

ディレクトリを削除するには、 y Enter ます。

rm: remove 1 argument recursively? y

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

rm -r *_bak

ディレクトリを削除するときに通常の展開を使用するのは危険です。 rm コマンドを実行する前に、削除されるディレクトリを確認できるように、最初に ls コマンドでディレクトリをリストすることをお勧めします。

find ディレクトリを削除する

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

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

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

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

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

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

ディレクトリツリー内のすべての空のディレクトリを削除するには、次を使用します。

find /dir -type d -empty -delete

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

  • /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 and find を使用すると、さまざまな基準に基づいて迅速かつ効率的にディレクトリを削除 find ます。

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

rm rmdirターミナルの検索