隠しファイルや隠しディレクトリなど、ディレクトリ内のすべてを削除するにはどうすればよいですか?
現在、私は以下を使用します:
rm -rf *
rm -rf .*
シンプルでわかりやすい:
find -delete
ディレクトリと隠しファイルが含まれています。少なくともgnu-findは-delete
を知っています。あなたのfind
は異なる場合があります。
最良の答えは、それを行わないことです。ディレクトリ自体を再帰的に削除してから、空のディレクトリとして再作成します。他の人があなたがやろうとしていることを理解する方が、より信頼性が高く、簡単です。ディレクトリを再作成すると、所有者、グループ、および権限が異なる場合があります。それらが重要な場合は注意してください。また、実行中のプログラムのいずれかに、ディレクトリで開いているファイルハンドル(記述子)がある場合は、それを削除する必要はありません。これらの特別なケースのいずれにも該当しない場合は、ディレクトリ全体を削除する方が簡単です。
rm -rf -- * .[!.]* ..?*
3つそれぞれのパターンは、何も一致しない場合はそれ自体に展開されますが、すべてに一致させたいため、ここでは問題にならず、存在しない引数をrm -f
が無視しました。
.*
は..
と一致することに注意してください。
ディレクトリにいる場合:
cd .. && rm -rf dir && mkdir dir && cd dir
さもないと:
rm -rf /path/to/dir && mkdir /path/to/dir
ああ、私のZsh
rm -rf (.|)*
繰り返しますが、これはZsh専用です。
find
の使用についてはどうですか。サブディレクトリを掘り下げる必要がある場合、これは一般的に良い選択だと思います。
find . -type f -exec rm {} \;