

timestr=`date +%Y%m%d%H%M%S`
ubackup="cfg_backup"
if [ ! -d $ubackup ]; then #若无备份目录,则直接vi编辑
vi $1
exit 0
fi
if [ ! -f $1 ]; then #若是新建文件,也直接编辑。
vi $1
exit 0
fi
case $1 in
*.xml) #若是*.xml文件,符合处理规则
filename=`ls -ltr $ubackup/$1*| tail -n 1 | awk '{print $9}'` #获取备份目录下该文件最新备份(不按文件名而是按文件创建时间)
echo [$filename]
if test -z "$filename" #若备份文件不存在
then
echo 'ccccccccccccccppppppppppp'
cp $1 $ubackup/$1.$timestr #拷贝入备份。
vi $1
exit 0
fi
diff $1 $filename >/dev/null
case $? in
0) #若要备份的文件与最新备份相同,则不备份。
vi $1
;;
1) #若不同,则备份。
cp $1 $ubackup/$1.$timestr
vi $1
;;
2) #diff 比较出错,啥也不做。
;;
esac
esac
脚本保存为vii,用vii 文件名形式调用。备份的条件是文件名为 *.xml,且当前目录下存在cfg_backup目录,且当前文件未做过备份,且该文件最新备份与要备份的文件不同。
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/441.html
