これにより、サブディレクトリとその下のすべてが削除されることはわかっています。
rm -rf <subdir-name>
しかし、現在のディレクトリ内のすべてとその下のすべてのサブディレクトリ、およびそれらすべてのサブディレクトリの内容を削除するにはどうすればよいでしょうか?
これにより、サブディレクトリとその下のすべてが削除されることはわかっています。
rm -rf <subdir-name>
しかし、現在のディレクトリ内のすべてとその下のすべてのサブディレクトリ、およびそれらすべてのサブディレクトリの内容を削除するにはどうすればよいでしょうか?
安全なコンピューティングを実践します。階層の 1 レベル上に移動し、ワイルドカード式を使用しないでください。
cd ..; rm -rf -- <dir-to-remove>
2 つのダッシュは、ダッシュで始まる場合でも、コマンド ライン オプションではない--
ことrm
を示しています。<dir-to-remove>
現在のファイル/ディレクトリの下にあるすべてのファイル/ディレクトリを削除します。
find -mindepth 1 -delete
あなたが持っている名前の別のディレクトリで同じことをしたい場合は、その名前を付けることができます
find <name-of-directory> -mindepth 1 -delete
サブディレクトリとそのファイルだけでなく、ディレクトリ自体も削除する場合は、-mindepth 1
. -delete
削除されるもののリストを取得するには、なしで実行します。
私がいつもしているのはタイプです
rm -rf *
次に ESC-*を押すと、bash は * を現在の作業ディレクトリ内のファイルとディレクトリの明示的なリストに展開します。
利点は次のとおりです。
実際、私はこれがとても気に入ったので、.bashrc に次の行を追加して、TAB のデフォルトの動作にしました。
bind TAB:insert-completions
使用する
rm -rf *
更新:.
は現在のディレクトリを表しますが、これは使用できません。.
コマンドには、との明示的なチェックがあるようです..
。代わりにワイルドカード グロビングを使用してください。しかし、これは危険な場合があります。
より安全なバージョンの IMO を使用することです。
rm -ri *
(これにより、すべてのファイル/ディレクトリを削除する前に確認を求めるプロンプトが表示されます。)
rm –rf .
サブディレクトリとその内容を含む現在のすべてを直接削除するのは正しいです。単一のドット( .
) は、現在のディレクトリを意味します。二重ドット( ) は前のディレクトリを意味するrm -rf ..
ので、しないように注意してください。..
そうは言っても、あなたが私のように複数の端末ウィンドウを同時に開いている場合は、安全をrm -ir .
確保してコマンド引数を使用して理由を理解することをお勧めします。
まず、rm
コマンドのマニュアル ページ(man rm
ほとんどの Unix で) を見ると、 –r
「ディレクトリの内容を再帰的に削除する」という意味であることがわかります。したがって、rm -r .
単独で実行すると、現在のディレクトリとその下のすべてが削除されます。
追加された -fはrm –rf .
、「存在しないファイルを無視し、プロンプトを表示しない」ことを意味します。このコマンドは、現在のディレクトリ内のすべてのファイルとディレクトリを削除し、本当に削除するかどうかを確認するプロンプトを表示しません。-f
特権ユーザーの下でコマンドを実行すると、ディレクトリの内容を削除する可能性があり、それが本当に必要なものであることを確認する機会が得られないため、特に危険です。
一方、「削除する前にプロンプトを表示する」という手段rm -ri .
に-i
代わるものです。-f
これは、rm が喜んですべてのファイルを削除する前に、「おっと! それは私が望んでいるものではない」と言う機会が得られることを意味します。
私の初期のシステム管理者の頃、私はrm -rf /
完全な権限 (root) でログインしているときにシステムで を実行しました。その結果、バックアップからシステムを復元するのに 2 日が経過しました。だからこそ今採用しrm -ri
ています。
どうですか:
rm -rf "$(pwd -P)"/*
rm -rf *
それをしないでください!危ないです!正しいディレクトリにいることを確認してください!
正しいディレクトリにいることを確認してください
rm -rf *
この最も単純で安全で一般的な解決策はおそらく次のとおりです。
find -mindepth 1 -maxdepth 1 -print0 | xargs -0 rm -rf