「検索」出力に基づいてディレクトリを削除する方法:最初の結果のみ

「検索」出力に基づいてディレクトリを削除する方法:最初の結果のみ

この質問に基づき、

「検索」出力に基づいてディレクトリを削除する方法は?

結果の最初のフォルダだけを削除してみました。

find * -type d | head -n1 | -exec rm -rf {} \;

ただし、次のエラーが発生します。

bash: -exec: command not found

何が問題なの?

ベストアンサー1

-quit以下と組み合わせて-deleteまたは後で使用できます-exec

-辞任する
すぐに終了します。子プロセスは引き続き実行されませんが、コマンドラインで指定されたパスは処理されなくなりました。


コマンドの最初の結果を削除しますfind

find * -type d -exec rm -Rf {} \; -quit

または

find . ! -path . -type d -exec rm -Rf {} \; -quit

後者は隠されたフォルダを探します。


検索出力は次のとおりです。アルファベット順に並べ替えられない

ソート後の最初の結果を削除するには:

find * -maxdepth 1 -type d -print0 | sort -z | head -zn1 | xargs -r0 rm -Rf

数値の並べ替えにはを使用しますsort -zn

おすすめ記事