差分ファイルだけを tar コマンドで固める

メモです。
(使っている 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}

Google サイト内検索

Amazonアソシエイト