好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Shell脚本 实现vi/cp/mv前自动备份源文件 - linux教程

Shell脚本 实现vi/cp/mv前自动备份源文件

以下脚本把所有要编辑的源文件备份到/bak目录下,并且所有的路径位置保持不变,比如vi /etc/hosts,则把/etc/hosts复制到/bak/etc/hosts。

  • # cat /sh/vii 
  • #!/usr/bin/bash 
  • #判断源文件是否存在,存在才执行备份操作 
  • if  [ -f  "$1"  ];then 
  • #创建函数,可实现任意键继续 
  • #如果你的机器上不认stty raw那么把函数中两处出现的raw换成cbreak 
  • get_char() 
  • SAVEDSTTY=`stty -g` 
  • stty -echo  
  • stty raw 
  • dd if =/dev/tty bs=1  count =1 2> /dev/null 
  • stty -raw 
  • stty echo  
  • stty $SAVEDSTTY  
  • #创建备份的根路径/bak,并让所有人具有写权限 
  • if  [ ! -d  "/bak"  ];then 
  • mkdir  /bak 
  • chmod  a+w /bak 
  • fi 
  • #判断目标文件所处的路径并创建,让所有人对新创建的任一级目录均具有写权限 
  • echo   $1  | grep  "/"  >/dev/null 
  • if  [  "`echo $?`"  =  "0"  ];then 
  • cd ${1%/*}  
  • fi  
  • pwdnow=`pwd`  
  • path=/bak${pwdnow}  
  • #echo $path  
  • if [ ! -d "$path" ];then  
  • mkdir -p $path  
  • patha=${pwdnow#

    查看更多关于Shell脚本 实现vi/cp/mv前自动备份源文件 - linux教程的详细内容...

  •   阅读:83次