1か月以上経過したファイルを削除[重複]

1か月以上経過したファイルを削除[重複]

1か月前のすべてのサブディレクトリを削除する必要があります。ただし、その月の最後の3ヶ月のデータは無視する必要があります。

状況data representationは次のとおりです。

bkp_01102014  bkp_04102014  bkp_07102014  bkp_11102014  bkp_15112014  
...................
...................
bkp_24112014  bkp_27112014  bkp_30062014  bkp_31072  bkp_20092014

または、他のコマンドを使用してfindそれらを自動化するにはどうすればよいですか?

ベストアンサー1

このファイルの名前を変更する必要はないと思います。ファイル名をすぐに変換し(最初のsed)、日付と比較して(awk)、一致するファイル名を再変換することができます(2番目のsed)。

find parent/directory -maxdepth 1 -type d -name 'bkp_*'                | \
sed 's#parent/directory/bkp_\(..\)\(..\)\(....\)#\3\2\1#'              | \
awk -v date=$(date --date='3 months ago' +%Y%m%d) '$0<$date{print $0}' | \
sed 's#\(....\)\(..\)\(..\)#parent/directory/bkp_\3\2\1#'              | \
xargs rm -r

まず、xargs rm部分なしでテストする必要があります!

おすすめ記事