国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Shell腳本 實現vi/cp/mv前自動備份源文件

2024-08-27 23:57:29
字體:
來源:轉載
供稿:網友

以下腳本把所有要編輯的源文件備份到/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#/} 
  31. chmod -R a+w /bak/${patha%%/*} 
  32. fi 
  33. #復制目標文件 
  34. datenow=`date +%Y%m%d` 
  35. timenow=`date +%H%M%S` 
  36. /usr/bin/cp $1 ${path}/${1##*/}.${datenow}.${timenow} 
  37. echo "Target file "$1
  38. has been copied to ${path}/${1##*/}.${datenow}.${timenow}" 
  39. echo "Now going to "vi $1",Press any key to continue..." 
  40. char=`get_char` 
  41. fi 
  42. #調用vi命令 
  43. vi $1 
  44. 調用腳本 
  45. chmod a+x /sh/vii 
  46. # /sh/vii /etc/passwd 

你可以把/sh加入到PATH變量中,這樣就更方便了,同理,涉及cp/mv命令時最好也備份一下目標文件,以免被意外覆蓋。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇义县| 钟祥市| 无锡市| 太湖县| 余姚市| 金坛市| 普宁市| 贞丰县| 榆社县| 乌苏市| 德令哈市| 韩城市| 浦县| 龙南县| 芦山县| 嵊泗县| 新竹县| 咸丰县| 东台市| 大足县| 朝阳县| 炎陵县| 平塘县| 西乌| 兴安盟| 芜湖市| 庆云县| 东阿县| 金山区| 宁德市| 曲阜市| 始兴县| 南雄市| 来安县| 辽宁省| 久治县| 黎平县| 多伦县| 望城县| 仪陇县| 固安县|