メモです。
(使っている Linux は Ubuntu 14.04.3 LTS です)
find コマンドで取得した更新日が新しいファイルだけを tar コマンドで 固める方法です。
更新日は、比較対象のファイルより新しいものを取得します。 (この方法については、前に書いているので、そちらを参照してください)
まずは環境変数の設定。
比較対象のファイル(BASE_FILE_PATH)と
固めるTARファイル(TAR_FILE_PATH)のパスを設定します。
$ BASE_FILE_PATH=./last_update.txt $ TAR_FILE_PATH=/tmp/xxxxxx
既存のTARファイルが存在するとよろしくないため 念のためですが、0バイトで上書きしておきます。
$ cat /dev/null > ${TAR_FILE_PATH}.tar
find コマンドでファイルを取得しつつ tar コマンドで固めます。 このとき、tar コマンドでは 追記 "r" を指定するのと 圧縮の "z" は指定しないようにします。
$ find ./ -type f -newer ${BASE_FILE_PATH} -exec tar rf ${TAR_FILE_PATH}.tar {} \;
TAR ボールを作った後で圧縮します。
$ gzip -f ${TAR_FILE_PATH}.tar
最後に比較対象のファイルを touch コマンドで更新しておけば 次もこの後からの差分を取得することができます。
$ touch ${BASE_FILE_PATH}