質問で言及したフラグは同じだと思いますが、前者は次のメッセージを受け取りますが、後者では何も受け取りません。
$ 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}
ベストアンサー1
GNUでマニュアルを探す:
find' command removes directories, you may find that you get a spurious error message when
あなたのfind 'が現在削除されているディレクトリに再帰しようとした場合。 「-depth」オプションを使用すると、通常この問題が解決されます。
その他の問題:
- コマンドの単純さは状況によって異なり、リストされている場合は次のようになります
rm -rf practice*
。 - IIRCでは、ファイルの処理順序はファイルシステムによって異なります。