名前にN日を過ぎたYYYYMMDDを含むサブディレクトリを削除する

名前にN日を過ぎたYYYYMMDDを含むサブディレクトリを削除する

文字通り$date7日より古いフォルダとその内容を削除するにはどうすればよいですか?ファイル名のYYYYMMDDによるとメタデータ日付の代わりに?私が(簡潔にするためにいくつかは省略しました)次のことを行ったとしましょう。

20170817
20170823
20170828
20170901

最後に、次のフォルダが作成されます(このフォルダはそのまま残す必要があります)。

20170828
20170901

7日前の日付を保存する変数を作成しました。 dt_prev=$(date -d "`date`-7days" +%Y%m%d)

私の考えは、ls -lこれらのフォルダ名を一覧表示して1行ずつ比較することでしたが、これにはリストの整理などが含まれ、より簡単な方法が必要になると思いました。

ベストアンサー1

解決策がよりシンプルなバージョンだと思います。出版社:グレンジャックマン、例えば

seven_days=$(date -d "7 days ago" +%Y%m%d)
for f in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]; do
   [ -d "$f" ] || continue
   (( $f < $seven_days )) && echo rm -r "$f"
done

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

この-dテストでは、ディレクトリのみを確認(削除)できます。

おすすめ記事