文字通り$date
7日より古いフォルダとその内容を削除するにはどうすればよいですか?ファイル名の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
テストでは、ディレクトリのみを確認(削除)できます。