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部分なしでテストする必要があります!