ディレクトリ内のすべてを削除するにはどうすればよいですか?


25

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

現在、私は次のものを使用しています:

rm -rf *
rm -rf .*

5
あなたはそれらを結合することができますrm -rf .* *
ユーザー不明

2
1つのディレクトリに移動して実行することができますrm -rf yourdirectory/*
-shreyansp

1
申し訳ありませんが、隠しディレクトリの部分を見逃しました。以前のユーザーソリューションはそれをカバーします
-shreyansp

投稿した2番目のオプションは非常に危険です。それは一致します..ディレクトリにあるものを削除しますた、ディレクトリを上記の
リチャードピーターソン

回答:


17

シンプルでわかりやすい:

find -delete 

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


1
ディレクトリの削除を回避するには、を使用しますfind /path -delete -mindepth 1
orodbhen

@orodbhen:find -deleteは、コマンドを起動したディレクトリを削除しません(rmの質問のように)。
ユーザー不明

11

最善の答えは、そうしないことです。ディレクトリ自体を再帰的に削除してから、空のディレクトリとして再作成します。他の人があなたがやろうとしていることを理解するのがより信頼でき、簡単です。ディレクトリを再作成すると、異なる所有者、グループ、およびアクセス許可が付与される場合があります。それらが重要な場合は注意してください。また、実行中のプログラムがディレクトリ上で開いているファイルハンドル(記述子)を持っている場合、それを削除することはできません。これらの特殊なケースのいずれも当てはまらない場合は、ディレクトリ全体を削除する方が簡単です。


7
それで、それはどのように簡単ですか。「注意」は答えではありません。なぜ誰かがディレクトリを削除して再構築するのか理解できません。
ユーザー不明

「空のディレクトリとして」というフレーズを追加しましたが、おそらくそれはより明確です。
クリスクエネル

2
いいえ、ディレクトリを削除してから再作成する理由は説明されていません。考慮すべき事柄には、作成日/時間も含まれます。
ユーザー不明

2
そのディレクトリが何らかのプロセスの現在の作業ディレクトリである場合、問題が発生する可能性があります。また、ディレクトリを削除すると、その許可と所有権に関する情報も削除されます。

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

3つのパターンはそれぞれ、何にも一致しない場合はそれ自体に展開されますが、すべてを一致rm -fさせ、存在しない引数を無視するため、ここでは問題になりません。

.*一致..することに注意してください。


5

bash 4+を想定:

shopt -s dotglob
rm -rf -- *
##or:
rm -rf ./*

dotglobを有効に*すると、すべてのファイルとディレクトリ(.- で始まるものも含む)に展開されますが、とに展開されないため、...使用しても安全rmです。


2

ディレクトリにいる場合:

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

さもないと:

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


2

ああ私のZsh

rm -rf (.|)*

繰り返しますが、これはZsh専用です。


2
または*(D)Dglob修飾子はglob_dotsこのパターンのオプションをオンにします)。
ジル 'SO-悪であるのをやめる'

またはrm -rf {.,}*(bashのとは違って、zshのは含まれていません...{.,}*、少なくとも私のマシン上で、)。
サーシャ

1

を使用してはどうですかfind。サブディレクトリを掘り下げる必要がある場合、これは一般的に良い選択だと思います。

find . -type f -exec rm {} \;

1
-deleteスイッチがあるため、ディレクトリを削除できます。(少なくともgnu-findで)。
ユーザー不明

これはサブディレクトリを削除しません
-sasha

-2

試してみてくださいrm -rf *?*。これにより、通常のファイルと隠しファイルが削除されます。


4
私が知っているどのシェルにもありません。
ジル「SO-停止が悪さ」

あなたは正しいです。サブディレクトリは削除されません。
gladimdim

4
問題は、より多くの可能性が高いことが可能です*?*(あなたが有効になっていない限り、ファイル/ディレクトリを「ドット」は一致しませんdotglobでオプションのbashGLOB_DOTS内のオプションのzsh、または使用しているシェル何のために相当します)。
クリスジョンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.