北京SEO

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

2019/10/10/17:48:42  阅读:2078  来源:谷歌SEO算法  标签: SEO培训

以下脚本把所有要编辑的源文件备份到/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. #如果你的机器上不认sttyraw那么把函数中两处出现的raw换成cbreak
  7. get_char()
  8. {
  9. SAVEDSTTY=`stty-g`
  10. stty-echo
  11. sttyraw
  12. ddif=/dev/ttybs=1count=12>/dev/null
  13. stty-raw
  14. sttyecho
  15. stty$SAVEDSTTY
  16. }
  17. #创建备份的根路径/bak,并让所有人具有写权限
  18. if[!-d"/bak"];then
  19. mkdir/bak
  20. chmoda+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#/}
  33. chmod-Ra+w/bak/${patha%%/*}
  34. fi
  35. #复制目标文件
  36. datenow=`date+%Y%m%d`
  37. timenow=`date+%H%M%S`
  38. /usr/bin/cp$1${path}/${1##*/}.${datenow}.${timenow}
  39. echo"Targetfile"$1"
  40. hasbeencopiedto${path}/${1##*/}.${datenow}.${timenow}"
  41. echo"Nowgoingto"vi$1",Pressanykeytocontinue..."
  42. char=`get_char`
  43. fi
  44. #调用vi命令
  45. vi$1
  46. 调用脚本
  47. #chmoda+x/sh/vii
  48. #/sh/vii/etc/passwd

你可以把/sh加入到PATH变量中,这样就更方便了,同理,涉及cp/mv命令时最好也备份一下目标文件,以免被意外覆盖。

广告内容

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

相关阅读

热门评论

萧红SEO 萧红SEO

SEO爱好者,分享SEO经验~

总篇数212

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法