免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1446 | 回复: 0
打印 上一主题 下一主题

Shell脚本 实现vi/cp/mv前自动备份源文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-31 14:24 |只看该作者 |倒序浏览
以下脚本把所有要编辑的源文件备份到/bak目录下,并且所有的路径位置保持不变,比如vii /etc/hosts,则把/etc/hosts复制到/bak/etc/hosts。  # cat /sh/viiTechWeb-技术社区(\2D+P7j-O,R:I#k4b
  #!/usr/bin/bash7r8v#b+O'z*U c/C
  #判断源文件是否存在,存在才执行备份操作
4O7J:S-E X(Z"w#v  if [ -f "$1" ];then
9I/j0D6A0^#o&?  #创建函数,可实现任意键继续
8N8a9w6D(F9i Y!m程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛  #如果你的机器上不认stty raw那么把函数中两处出现的raw换成cbreak
$d%N:l9|2J(S;O j  get_char()
6z"J9E7H:{(V  {
/e,{,[7~6L7]#L+L  SAVEDSTTY=`stty -g`
"e7~!@-z,F._9L  stty -echo.H6H2^%@-H3C9l
  stty raw
(e8z8r,\6]6e:H2j8|  dd if=/dev/tty bs=1 count=1 2> /dev/null程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛1k1P"u*w&D2a.w4v7f
  stty -raw o8s-X&S'q9A*F,`$H
  stty echo
(k5x2Q;y/I-_!z!RTechWeb-技术社区  stty $SAVEDSTTY0O*P.e,u2f#l%q4O:`-v
  }TechWeb-技术社区#`:A/{5f*w9X
  #创建备份的根路径/bak,并让所有人具有写权限
*q"`-a._"vTechWeb-技术社区  if [ ! -d "/bak" ];then
0@)Q6v/?-N9F+D  mkdir /bak
#?/T8H;D c4n#_.Y0dtech.techweb.com.cn  chmod a+w /bak程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛5q)@;X N2e-M6k.s;e/[
  fi

================================================================================
#判断目标文件所处的路径并创建,让所有人对新创建的任一级目录均具有写权限TechWeb-技术社区+u(f9B7^7y,c
TechWeb-技术社区0F'L)v.G2C%^
  echo $1 | grep "/" >/dev/null,w N(i8i Y*E5k2{0e:o
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛"{,x2b;H$`*h
  if [ "`echo $?`" = "0" ];then
-q3c"]-[!m:B
)y$p5r7Q7T(J;k&U,d,V+v程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛  cd ${1%/*}程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛#~$z#_&R#?"m&{$\
3a2a;r3Y4t'o
  fi
-r'P2G-x/Q4i'J程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛TechWeb-技术社区:d7|2V!E.V1o8S4})O
  pwdnow=`pwd`tech.techweb.com.cn+u D)N9t7`(i$S:q/e
6Z#Y:_,l2M:~+]!mtech.techweb.com.cn  path=/bak${pwdnow}0Y(S5m!y+R%K&a
(["s(]6n9b7M;r5J v8T*N  #echo $path
X:\$R)t+^%y
:\#_,n7m9v4h%R$M)z  if [ ! -d "$path" ];then
-L$n-? j0~8t
's(O.U,z1a0n)l1T.UTechWeb-技术社区  mkdir -p $path:R8a l,I7g7?,X3v;U
+d0L7A1w-B:{
  patha=${pwdnow#/}
)X0n)X+N8`'b-A3Q;P"x3r)K3k%O:W"P
  chmod -R a+w /bak/${patha%%/*}程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 m8y'@,{)j/t
!f%]0U5t1];z+V*R  fitech.techweb.com.cn'X |+B)L;C
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛2Y&\0g%l4V'D(L7t
  #复制目标文件
!D0z%@9f%|.}6Ltech.techweb.com.cn'V%i5X&T4g(L$[
  datenow=`date +%Y%m%d`
:[ l;{+w!`*n程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
0?5R.c:C(D:Z8M  timenow=`date +%H%M%S`
2r.a9m9i!s)L*P)k&?
.x%`"\)O#G/Y2|  /usr/bin/cp $1 ${path}/${1##*/}.${datenow}.${timenow}
2f+B.g!q!j&x:n
2K \5d3z1c:u%A&C0S"X  echo "Target file \"$1\"程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛5O*s0g,l5l)l3o I
#u(N!]#d'i+y*b$m*u
  has been copied to ${path}/${1##*/}.${datenow}.${timenow}"%K9K:{$q5l
.@0a0G%~+i"[tech.techweb.com.cn  echo "Now going to \"vi $1\",Press any key to continue……"
"S"y9u3m&{3RTechWeb-技术社区#H0d4z#r&K(F6m(h1g
  char=`get_char`程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛){-D-O9B+v0v9j*j
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛'{&e9h7v4T8};x+@5S
  fi&|1U,e!^'x'p:K
;c'm&H+Z2i$o2G)u&?  #调用vi命令3q&p*|3|4T9M x4o$p
3a r/C7u%b.~:F%r$k  vi $1TechWeb-技术社区#B#T.f'F'x,f&\2[*T7U
-} l!L(C3o#g,u7@  调用脚本
4s:n.m I,Ltech.techweb.com.cn程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛&e$G'Y$v"F7{8i
  # chmod a+x /sh/vii
.k4H't,?%F#a6O2ftech.techweb.com.cn3f(s%m:i,M+o7f:n,?
  # /sh/vii /etc/passwd/C/y0m+a-K
(s/v2K.y%f8E)fTechWeb-技术社区  你可以把/sh加入到PATH变量中,这样就更方便了。
2}/Z7f5](V
Y;?'b8a$b3])d$n  同理,涉及cp/mv命令时最好也备份一下目标文件,以免被意外覆盖。



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/63432/showart_1764239.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP