A,B两个目录比较子目录名是否相同,有相同的则用B的覆盖A的,但先要备份A的到C目录
#! /bin/bash
# arg num must be 3
if [ $# -ne 3 ]; then
echo "usage: $0 olddir newdir backdir"
exit -1
fi
# arg1 arg2 arg3 all must be directory
if [ ! -d $1 ]; then
echo "$1 is not a dir"
exit -1
fi
if [ ! -d $2 ]; then
echo "$2 is not a dir"
exit -1
fi
if [ ! -d $3 ]; then
echo "$3 is not a dir"
exit -1
fi
#define dir variable
OLDDIR=$1
NEWDIR=$2
BACKDIR=$3
#define log varible
CURRENT_DATE=`date ""+%Y%m%d`
LOGDIR="log"
TODAYLOG="$LOGDIR/${CURRENT_DATE}.log"
#if logdir is not exist, create it
if [ ! -d $LOGDIR ]; then
mkdir $LOGDIR
fi
#if today log file is not exist, create it
if [ ! -e $TODAYLOG ]; then
touch $TODATLOG
fi
# test dir and back
for i in `ls $OLDDIR`
do
for j in `ls $NEWDIR`
do
if [ $i -eq $j ]; then
`mv -f $OLDDIR/$i $BACKDIR`
`cp -rf $NEWDIR/$i $OLDDIR`
echo "mv -f $OLDDIR/$i $BACKDIR" >> $TODAYLOG
echo "cp -rf $NEWDIR/$i $OLDDIR" >> $TODAYLOG
fi
done
done
#! /bin/bash
# arg num must be 3
if [ $# -ne 3 ]; then
echo "usage: $0 olddir newdir backdir"
exit -1
fi
# arg1 arg2 arg3 all must be directory
if [ ! -d $1 ]; then
echo "$1 is not a dir"
exit -1
fi
if [ ! -d $2 ]; then
echo "$2 is not a dir"
exit -1
fi
if [ ! -d $3 ]; then
echo "$3 is not a dir"
exit -1
fi
#define dir variable
OLDDIR=$1
NEWDIR=$2
BACKDIR=$3
#define log varible
CURRENT_DATE=`date ""+%Y%m%d`
LOGDIR="log"
TODAYLOG="$LOGDIR/${CURRENT_DATE}.log"
#if logdir is not exist, create it
if [ ! -d $LOGDIR ]; then
mkdir $LOGDIR
fi
#if today log file is not exist, create it
if [ ! -e $TODAYLOG ]; then
touch $TODATLOG
fi
# test dir and back
for i in `ls $OLDDIR`
do
for j in `ls $NEWDIR`
do
if [ $i -eq $j ]; then
`mv -f $OLDDIR/$i $BACKDIR`
`cp -rf $NEWDIR/$i $OLDDIR`
echo "mv -f $OLDDIR/$i $BACKDIR" >> $TODAYLOG
echo "cp -rf $NEWDIR/$i $OLDDIR" >> $TODAYLOG
fi
done
done