$DIR_TO_CLEAN
数日以上前のファイルを削除したい$DAYS_TO_SAVE
。簡単:
find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE -exec rm {} \;
-type f
にまたは-f
フラグを追加できると思いrm
ますが、削除されたファイルの数を本当に数えたいと思います。
これは素朴に行うことができます:
DELETE_COUNT=`find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE | wc -l`
find "$DIR_TO_CLEAN" -mtime +$DAYS_TO_SAVE -exec rm {} \;
しかし、この解決策には多くの課題が残されています。コマンドの重複に加えて、このスニペットはrm
、ファイルの削除に失敗した場合のカウントを過大評価します。
私はリダイレクト、パイプ(名前付きのものを含む)、サブシェル、、などにかなり慣れていxargs
ますtee
が、新しいトリックを学びたいと思っています。bashとkshの両方で機能するソリューションが欲しいです。
によって削除されたファイルの数をどのように数えますfind
か?