多分、車輪の再発明。学生にレポートやプログラムを再提出させたときに前回との違いを調べるために作ったスクリプト。SOURCEに含まれるファイルと同名のTARGETにあるファイルのdiffをとり、同じならば「Same!」違うならばdiffの結果を出す。シェルスクリプトなのでどのUnix環境でも動くと思う。
#/bin/sh SOURCE=/home/hoge/sourcedir/ TARGET=/home/hoge/targetdir/ if test -d $SOURCE then cd $SOURCE filelist="$SOURCE*" for filepath in ${filelist} do filenameSource=`basename ${filepath}` filenameTarget=$TARGET$filenameSource echo "Check $filenameSource" if test -e $filenameTarget then echo "diff source:$filenameSource target:$filenameSource" difference=`diff $filenameSource $filenameTarget` if test -z $difference then echo " Same!" else diff $filenameSource $filenameTarget fi echo "=====" else echo "No file.\n" fi done else echo "No such file or directory: $SOURCE" fi
使い方は上記をcompare.shと名づけたとき。
% chmod 755 compare.sh % ./compare.sh
本当は引数でディレクトリ名をとったほうが良いのだけど。