明白な解決策は、1の終了コードを生成します。
bash$ rm -rf .*
rm: cannot remove directory `.'
rm: cannot remove directory `..'
bash$ echo $?
1
可能な解決策の1つは「。」をスキップすることです。および「..」ディレクトリですが、名前が3文字を超えるファイルのみを削除します。
bash$ rm -f .??*
rm -rf。[^。]。?? *
すべてのケースをキャッチする必要があります。 。?? *は(前の回答で説明したように)3文字以上のファイル名にのみ一致し、。[^。]は(..以外の)2文字のエントリをキャッチします。
find -path './.*' -delete
これは、.
で始まる現在のディレクトリ内のすべてのファイルに一致し、これらを再帰的に削除します。非表示でないディレクトリにある非表示のファイルは変更されません。
ディレクトリからeverythingを本当にワイプしたい場合は、find -delete
で十分です。
おそらく最良の方法は:
rmをls -lに変更します。何が削除されるかを確認したいだけの場合、出力を詳細に表示するには、追加したい-vオプションを使用します。にrm
ps。 「\;」で終わることを忘れないでください。