1. 苏葳的备忘录首页
  2. 编程

用vi编辑前备份文件的简单脚本

vi  aix shellAIX下,经常需要编辑一些XML配置文件,由于配置文件较复杂,所以编辑之前通常要作备份,那么为什么不做个自动备份功能呢?可能vimrc文件里一些命令会有所帮助,但这里,还是写个脚本完成功能。主要是判断是否当前目录下存在备份目录,如果存在该目录,则判断是否是需要备份的XML配置文件,若备份文件已存在,则进入编辑,若不存在,则将要编辑的文件先拷贝入备份目录,再进行编辑。

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

发表评论

邮箱地址不会被公开。 必填项已用*标注