回答:
安全なコンピューティングを実践します。階層の1つ上のレベルに移動し、ワイルドカード式を使用しないでください。
cd ..; rm -rf -- <dir-to-remove>
2つのダッシュは、ダッシュで始まっていても、それがコマンドラインオプションではない--
ことをrm
示し<dir-to-remove>
ています。
rm ./
場合、あなたは誤ってタイプするかもしれません、rm . /
それは災害であるかもしれません。
現在のものの下にあるすべてのファイル/ディレクトリを削除します。
find -mindepth 1 -delete
あなたが名前を持っている別のディレクトリで同じことをしたいのであれば、単にそれに名前を付けることができます
find <name-of-directory> -mindepth 1 -delete
サブディレクトリとそのファイルだけでなく、ディレクトリ自体も削除する場合は、を省略し-mindepth 1
ます。-delete
削除しないもののリストを取得するには、なしで実行してください。
-mindepth 1
ディレクトリ(find <name-of-directory> -mindepth 1 -delete
)を指定する場合に必要です。それ以外の場合、Johannesは正しいfind -delete
です。現在の作業ディレクトリは削除されません(を使用する場合)。
find -mindepth 1 -delete
しかし、私は得た illegal option -- m
が、私はmindepthオプション取り除いたとき、それは素晴らしい仕事 find . -delete
私はいつもタイプしている
rm -rf *
そしてその後、ESC- *をヒットし、bashは、現在の作業ディレクトリ内のファイルおよびディレクトリの明示的なリストに*を拡大していきます。
利点は次のとおりです。
実際、私はこれが大好きなので、.bashrcの次の行でTABのデフォルトの動作にしています。
bind TAB:insert-completions
--
この回答に?このアプローチは私が言わなければならない全体的に素晴らしいです。
使用する
rm -rf *
更新:.
は現在のディレクトリを表しますが、これは使用できません。コマンドには、.
およびの明示的なチェックがあるよう..
です。代わりにワイルドカードグロビングを使用してください。しかし、これは危険を伴う可能性があります。
より安全なバージョンのIMOは次のものを使用します。
rm -ri *
(これにより、すべてのファイル/ディレクトリを削除する前に確認を求められます。)
rm –rf .
サブディレクトリとそのコンテンツを含め、現在のすべてを直接削除するのは正しいことです。単一のドットは(.
)カレントディレクトリを意味します。二重ドット()は前のディレクトリを意味するrm -rf ..
ため、行わないように注意してください。..
つまり、私と同じように複数のターミナルウィンドウを同時に開いている場合は、安全rm -ir .
で、コマンドの引数を見て理由を理解することをお勧めします。
まず、rm
コマンドのmanページ(man rm
ほとんどのUnixの場合)を見ると、–r
「ディレクトリの内容を再帰的に削除する」ことを意味していることに気づくでしょう。したがって、rm -r .
単独で実行すると、現在のディレクトリ内のすべてとそれ以下のすべてが削除されます。
でrm –rf .
追加-f手段「は決してプロンプト、存在しないファイルを無視」。このコマンドは、現在のディレクトリ内のすべてのファイルとディレクトリを削除し、本当に削除するかどうかを確認するプロンプトを表示しません。-f
特権ユーザーでコマンドを実行する場合は特に危険です。これは、ディレクトリの内容を削除して、それが本当に必要なものであるかどうかを確認できないためです。
otherhandで、中に置き換えられている「任意の除去前のプロンプト」の手段を。これは、rmがすべてのファイルを喜んで削除する前に、「oups!それは私が望むものではない」と言う機会を得ることを意味します。rm -ri .
-i
-f
私の初期のシステム管理者の日、私はrm -rf /
完全な特権(root)でログに記録されているシステムでを実行しました。その結果、バックアップからシステムを復元するのに2日かかりました。それが今私が今採用してrm -ri
いる理由です。
正しいディレクトリにいることを確認してください
rm -rf *
私はこの答えが良いと信じています:
/unix/12593/how-to-remove-all-the-files-in-a-directory
トップレベルのディレクトリが呼び出された場合は
images
、を実行しrm -r images/*
ます。これは、シェルglob演算子*
を使用して、rm -r
イメージ内のすべてのファイルまたはディレクトリで実行されます。
基本的には1つ上のレベルに移動し、Xディレクトリ内のすべてを削除すると言います。この方法でも、コンテンツを削除するフォルダーを指定します。これは、「ここですべてを削除する」と言うよりも安全ですが、元のフォルダーは保持されます(許可されていない、または単に望まないために必要な場合があります)。フォルダの既存のアクセス許可を変更するには)