网站地图    收藏   

主页 > 系统 > 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. SAVEDSTTY=`stty -g` 
  9. stty -echo 
  10. stty raw 
  11. dd if=/dev/tty bs=1 count=1 2> /dev/null 
  12. stty -raw 
  13. stty echo 
  14. stty $SAVEDSTTY 
  15. #创建备份的根路径/bak,并让所有人具有写权限 
  16. if [ ! -d "/bak" ];then 
  17. mkdir /bak 
  18. chmod a+w /bak 
  19. fi 
  20. #判断目标文件所处的路径并创建,让所有人对新创建的任一级目录均具有写权限 
  21. echo $1 | grep "/" >/dev/null 
  22. if [ "`echo $?`" = "0" ];then 
  23. cd ${1%/*} 
  24. fi 
  25. pwdnow=`pwd` 
  26. path=/bak${pwdnow} 
  27. #echo $path 
  28. if [ ! -d "$path" ];then 
  29. mkdir -p $path 
  30. patha=${pwdnow#

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

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

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

添加评论