ディレクトリには次のzipファイルがあります。
DBSOURCE20150601.gz
WINDOWS20150504.gz
NETWORK20150609.gz
PATCHTEST20150512.gz
.................
................
ファイル名に記載されている日付に基づいて10日を過ぎたzipファイルを削除したいと思います。例えば、
WINDOWS20150604.gz is file having date 4 June 2015.
私は次のことをしようとしていますが、なぜ10日後のファイルだけを削除するのではなく、すべてのzipファイルを削除するのかわかりません。
ten_days=$(date -d "10 days ago" +%Y%m%d)
for f in *[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9].gz; do
date=${f#*}
date=${date%.gz}
(( $date < $ten_days )) && rm "$f"
done
ベストアンサー1
ファイル名から日付が正しく抽出されませんでした。これを行うには、次の操作を行う必要があります。
date=${f#*}
date=${date%.gz}
date=`echo $date| rev `
date=${date:0:8}
date=`echo $date| rev `
これで日付を比較して削除できます。