Annotation of researchv10no/cmd/dircmp.sh, revision 1.1

1.1     ! root        1: PATH=/bin:/usr/bin
        !             2: trap "rm -f /usr/tmp/dc$$*;exit" 1 2 3 15
        !             3: while [ $# -ge 2 ]
        !             4: do
        !             5:        case $1 in
        !             6:        -d)     Dflag="yes"
        !             7:                shift
        !             8:                ;;
        !             9:        -s)     Sflag="yes"
        !            10:                shift
        !            11:                ;;
        !            12:        -*)     echo unknown option
        !            13:                exit 3
        !            14:                ;;
        !            15:         *)     D1=$1 D2=$2
        !            16:                break
        !            17:                ;;
        !            18:        esac
        !            19: done
        !            20: if [ $# -lt 2 ]
        !            21: then echo $0: usage: $0 -s -d directory directory
        !            22:      exit 1
        !            23: elif [ ! -d "$D1" ]
        !            24: then echo $D1 not a directory !
        !            25:      exit 2
        !            26: elif [ ! -d "$D2" ]
        !            27: then echo $D2 not a directory !
        !            28:      exit 2
        !            29: fi
        !            30: D0=`pwd`
        !            31: cd $D1
        !            32: find . -print | sort > /usr/tmp/dc$$a
        !            33: cd $D0
        !            34: cd $D2
        !            35: find . -print | sort > /usr/tmp/dc$$b
        !            36: comm /usr/tmp/dc$$a /usr/tmp/dc$$b | sed -n \
        !            37:        -e "/^          /w /usr/tmp/dc$$c" \
        !            38:        -e "/^  [^      ]/w /usr/tmp/dc$$d" \
        !            39:        -e "/^[^        ]/w /usr/tmp/dc$$e"
        !            40: rm -f /usr/tmp/dc$$a /usr/tmp/dc$$b
        !            41: pr -h "$D1 only and $D2 only" -m /usr/tmp/dc$$e /usr/tmp/dc$$d
        !            42: rm -f /usr/tmp/dc$$e /usr/tmp/dc$$d
        !            43: sed -e s/..// < /usr/tmp/dc$$c > /usr/tmp/dc$$f
        !            44: rm -f /usr/tmp/dc$$c
        !            45: cd $D0
        !            46: while read a
        !            47: do
        !            48:        if [ -d $D1/$a ]
        !            49:        then if [ "$Sflag" != "yes" ]
        !            50:             then echo "directory       $a"
        !            51:             fi
        !            52:        elif [ -f $D1/$a ]
        !            53:        then cmp -s $D1/$a $D2/$a
        !            54:             if [ $? = 0 ]
        !            55:             then if [ "$Sflag" != "yes" ]
        !            56:                  then echo "same       $a"
        !            57:                  fi
        !            58:             else echo "different       $a"
        !            59:                  if [ "$Dflag" = "yes" ]
        !            60:                  then diff $D1/$a $D2/$a | pr -h "diff of $a in $D1 and $D2" >> /usr/tmp/dc$$g
        !            61:                  fi
        !            62:             fi
        !            63:        elif [ "$Sflag" != "yes" ]
        !            64:        then echo "special      $a"
        !            65:        fi
        !            66: done < /usr/tmp/dc$$f | pr -r -h "Comparison of $D1 $D2"
        !            67: if [ "$Dflag" = "yes" ]
        !            68: then cat /usr/tmp/dc$$g
        !            69: fi
        !            70: rm -f /usr/tmp/dc$$*

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.