dir_newとdir_oldの両ディレクトリの差分をtar.gz生成シェルスクリプト

#!/bin/sh
変数に値を格納する

 NewDir="/data/nextcontents1.ocn.ne.jp/htdocs"#新ファイルを格納しているディレクトリ
 OldDir="/data/www.ocn.ne.jp/htdocs"#古いファイルを格納しているディレクトリ
 TarPath="/data/testcontents1.ocn.ne.jp/php-bin/data/bbmupload.tar"#差分のtarファイルのフルーパス
 TarGzPath="/data/testcontents1.ocn.ne.jp/php-bin/data/bbmupload.tar.gz"#最終的に生成されるtar.gz差分ファイルのフルーパス

上記の変数に基づいてdiffで出した差分ファイルの情報を一行ずつでパス情報を抽出し、さらに、$NewDirが含まれる行だけを抽出し、さらに、$NewDir自身のパスを[./]に書き換え、最後はtarに渡してtarファイルを生成する

 for i in `diff -Nurq $NewDir $OldDir | xargs -n1 dir 2>/dev/null | grep $NewDir | sed -e "s/\/data\/nextcontents1.ocn.ne.jp\/htdocs/./g"`; do 
 cd $NewDir; 
 tar -uf $TarPath $i 2>/dev/null; 
 echo $i;
 done

差分が検出すれば、上記で生成したtarファイルをtar.gzファイルを生成する。
差分がなければ、"差分はございません。"を出力

 if [ -f $TarPath ]; then
 gzip -rf $TarPath
 chmod 777 $TarGzPath
 echo "差分ファイルをダウンロードする"
 else
 echo "差分はございません。"
 fi

 echo "All done!"