X-Git-Url: http://lab.mitty.jp/git/?a=blobdiff_plain;f=TipAndDoc%2F.bin%2Fcmpdir;h=45d474c53434d8950da1ba7a5738c9a071c3106d;hb=d3973efc38bc7426eec6cbf151192ddc1fb93064;hp=f8f546a53b08d6bb5d5472c48cc000f50cea358a;hpb=5eea6d8cf8e3500fb1df24de687bbc0d622534cb;p=lab.git diff --git a/TipAndDoc/.bin/cmpdir b/TipAndDoc/.bin/cmpdir index f8f546a..45d474c 100755 --- a/TipAndDoc/.bin/cmpdir +++ b/TipAndDoc/.bin/cmpdir @@ -4,6 +4,23 @@ if [ $# -lt 2 ]; then echo "Usage: $0 directory1 directory2" exit 1 fi +if [ $# -eq 3 ]; then + [ -d "$1/$3" ] && [ -d "$2/$3" ] && + exit + [ ! -e "$1/$3" ] && [ ! -e "$2/$3" ] && + echo "$0: something wrong abount '$3'" >&2 && exit + [ -e "$1/$3" ] && [ ! -e "$2/$3" ] && + echo "Only in '$1': '$3'" >&2 && exit + [ ! -e "$1/$3" ] && [ -e "$2/$3" ] && + echo "Only in '$2': '$3'" >&2 && exit + [ -f "$1/$3" ] && [ -d "$2/$3" ] && + echo "'$1/$3' is a regular file but '$2/$3' is a directory" >&2 && exit + [ -d "$1/$3" ] && [ -f "$2/$3" ] && + echo "'$1/$3' is a directory but '$2/$3' is a regular file" >&2 && exit + + cmp -s "$1/$3" "$2/$3" || echo "$1/$3" "$2/$3" are differ >&2 + exit +fi if [ -d "$1" -a -d "$2" ]; then echo "$0: start comparing '$1' and '$2'" >&2 fi @@ -14,22 +31,14 @@ trap "rm -- '$list' '$tmp'" EXIT wc=$PWD cd "$1" -find ./ -print0 >> "$tmp" +find -print0 >> "$tmp" cd $wc cd "$2" -find ./ -print0 >> "$tmp" +find -print0 >> "$tmp" cd $wc sort -z "$tmp" | uniq -z > "$list" -comppath () { - [ ! -e "$1/$3" ] && [ ! -e "$2/$3" ] && - (echo "$0: something wrong abount '$3'" >&2; return) - [ -e "$1/$3" ] && [ ! -e "$2/$3" ] && - (echo "Only in '$1': '$3'" >&2; return) - [ ! -e "$1/$3" ] && [ -e "$2/$3" ] && - (echo "Only in '$2': '$3'" >&2; return) -} -xargs -a "$list" -0 -n 1 -I entry cmp "$1/entry" "$2/entry" +xargs -a "$list" -0 -n 1 -I entry $0 "$1" "$2" "entry"