更新されたファイルがない場合は、ディレクトリを削除します。

更新されたファイルがない場合は、ディレクトリを削除します。

過去N日間に変更されていないディレクトリのみを削除したいと思います。変更とは、Nよりも最新の内容を含むすべてのファイルを意味します。

私は何かをしました/次のようなものを見つけましたこれ しかし、私が望むようにはなりません。

ベストアンサー1

問題のディレクトリ(ここでは現在のディレクトリの各サブディレクトリ)を繰り返して、出力された行数を計算し、数値がゼロの場合はfindディレクトリを削除します。このfindコマンドには、指定されたディレクトリに「N」日以内に変更されたファイルのみが必要です(最後の「N」日以内に変更されます)。

N=3
for dir in */
do
  count=$(find "$dir" -type f -mtime -"$N" -print | wc -l)
  [ "$count" -eq 0 ] && echo rm -r -- "$dir"
done

echo結果が正確に見える場合は削除してください。

おすすめ記事