質問で述べたフラグは同じだと思いましたが、前者では次のメッセージが表示されますが、後者では何も表示されません。
$ find . -mindepth 1 -type d -exec rm -rf {} \;
find: `./practice4': No such file or directory
find: `./practice10': No such file or directory
find: `./practice7': No such file or directory
find: `./practice9': No such file or directory
find: `./practice1': No such file or directory
find: `./practice5': No such file or directory
find: `./practice3': No such file or directory
find: `./practice6': No such file or directory
find: `./practice2': No such file or directory
find: `./practice8': No such file or directory
私が持っている追加の質問は次のとおりです:、すべてのサブディレクトリを削除するためのより簡単なコードはありますか?削除の順序はランダムですか?を使用してディレクトリを作成しました
$ mkdir practice{1..10}
GNUマニュアルを探す:
もしあなたの
find' command removes directories, you may find that you get a spurious error message when
find 'は、現在削除されているディレクトリに再帰しようとします。 `-depth 'オプションを使用すると、通常、この問題は解決します。
その他の質問:
rm -rf practice*
。Thor は、このエラーが発生する理由と、find
を使用するときにエラーを修正する方法についてはすでに説明しています。
シェルスクリプトで表現できない追加の条件がない限り、find
を-mindepth 1
で呼び出しても意味がありません。あなたがやろうとしていることは書くことができます
rm -rf */
現在のディレクトリに、名前が.
(*
と一致しない)で始まるディレクトリまたはディレクトリへのシンボリックリンク(find
コマンド)が含まれていない限り除外しますが、上記のシェルスニペットは含まれます)。