网站地图    收藏   

主页 > 系统 > linux系统 >

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

来源:自学PHP网    时间:2014-11-28 23:07 作者: 阅读:次

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

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

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

  1. # cat /sh/vii 
  2. #!/usr/bin/bash 
  3. #判断源文件是否存在,存在才执行备份操作 
  4. if [ -f "$1" ];then 
  5. #创建函数,可实现任意键继续 
  6. #如果你的机器上不认stty raw那么把函数中两处出现的raw换成cbreak 
  7. get_char() 
  8. { 
  9. SAVEDSTTY=`stty -g` 
  10. stty -echo 
  11. stty raw 
  12. dd if=/dev/tty bs=1 count=1 2> /dev/null 
  13. stty -raw 
  14. stty echo 
  15. stty $SAVEDSTTY 
  16. } 
  17. #创建备份的根路径/bak,并让所有人具有写权限 
  18. if [ ! -d "/bak" ];then 
  19. mkdir /bak 
  20. chmod a+w /bak 
  21. fi 
  22. #判断目标文件所处的路径并创建,让所有人对新创建的任一级目录均具有写权限 
  23. echo $1 | grep "/" >/dev/null 
  24. if [ "`echo $?`" = "0" ];then 
  25. cd ${1%/*} 
  26. fi 
  27. pwdnow=`pwd` 
  28. path=/bak${pwdnow} 
  29. #echo $path 
  30. if [ ! -d "$path" ];then 
  31. mkdir -p $path 
  32. patha=${pwdnow#

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论