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