フォルダー構造のようなカレンダーを使用してファイルを整理するバックアップフォルダーがあります。これらを5日ごとに削除したいのですが、メインフォルダーが5日より古いため、完全バックアップを削除してしまいます。
フォルダー構造:
Backup
-> 2017
-> October
-> 28
-> 29
-> 30
-> 31
-> November
-> 1
-> 2
-> 3
私はこのコマンドを実行しようとしました:
find /mnt/backup/* -type d -mtime +5 -execdir rm -rf {} \;
ただし、5日以上前のディレクトリ2017が削除されます。つまり、すべてのサブフォルダーが削除されます。ここで、5日前のディレクトリのみを削除します。たとえば、今日が11月3日だった場合、ディレクトリ28と29だけを削除したいです。その後、11月5日になったら、10月のディレクトリ全体を削除して、そこにあるすべてのものが5日以上経過するようにします。助言がありますか?
ありがとう
-mindepth 1
に触れたくない場合は、2017
を使用します。
$ mkdir -p foo/2017/{October/{28..31},November/{1..3}}
$ touch -d 'now - 6 days' foo/2017/October/{28,29} foo/2017
$ find foo/* -mindepth 1 -mtime +5
foo/2017/October/28
foo/2017/October/29
$ find foo/* -mtime +5
foo/2017
foo/2017/October/28
foo/2017/October/29
foo/2017
ではなくfoo
から開始する場合は、-mindepth 2
を使用します。
$ find foo/ -mindepth 2 -mtime +5
foo/2017/October/28
foo/2017/October/29