7日前にzipディレクトリを圧縮する方法

7日前にzipディレクトリを圧縮する方法

多くのXMLファイルが格納されているフォルダがあり、フォルダ名は「yyyymmdd」形式です(例:20180515)。そのようなフォルダが7日間大きくなると、圧縮できるスクリプトが必要です。実際のパス:/test/xml_files/yyyymmdd/*.xml。

ベストアンサー1

ディレクトリの日付形式が与えられたら、単純なシェルスクリプトを使用して締め切りを計算し、関連するすべてのディレクトリを繰り返すことで、締め切りより早い(より少ない)かどうかを尋ねることができます。

#!/bin/sh

cutoff=$(date -d "7 days ago"  +%Y%m%d)
for d in [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
do
  if [ $d -lt $cutoff ] && [ ! -f "${d}".zip ]
  then
    zip -r "$d" "$d"
  fi
done

唯一の要件は、任意の日付を計算できる日付ユーティリティ(たとえば、GNUのユーティリティ)です。

スクリプトは期限より古いため、そのzipファイルがまだ存在していないディレクトリのみを圧縮しようとします。必要に応じてgzipを置き換えることができます。条件をtar調整してください。-f

おすすめ記事