ディレクトリ内のすべてのエントリをどのように削除しますか?

ディレクトリ内のすべてのエントリをどのように削除しますか?

隠しファイルやディレクトリなど、ディレクトリ内のすべてのエントリを削除するにはどうすればよいですか?

今は次のように使用します。

rm -rf *
rm -rf .*

答え1

シンプルで簡単:

find -delete 

ディレクトリと隠しファイルが含まれています。少なくともgnu-findは-deleteあなたのfindものが異なるかもしれないことを知っています。

答え2

最良の答えはしないでください。ディレクトリ自体を繰り返し削除し、空のディレクトリに再作成します。他の人にとっては、自分が望むものを理解する方が安定して簡単です。ディレクトリを再作成すると、所有者、グループ、および権限が異なる場合があります。これが重要な場合は注意してください。また、実行中のプログラムのディレクトリにファイルハンドル(説明者)が開いている場合は、それを削除したくありません。これらの特別なケースが適用されない場合は、ディレクトリ全体を削除する方が簡単です。

答え3

rm -rf -- * .[!.]* ..?*

3つのパターンがそれぞれ一致しない場合は、それ自体が拡張されますが、すべての項目を一致させ、rm -f存在しない引数を無視するため、問題はありません。

気づく.*一致..

答え4

そのディレクトリにある場合:

cd .. && rm -rf dir && mkdir dir && cd dir

それ以外の場合:

rm -rf /path/to/dir && mkdir /path/to/dir

関連情報