日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux Shell 从入门到删除根目录跑路指南

發布時間:2023/12/20 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux Shell 从入门到删除根目录跑路指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

shell作為一門 linux 下使用廣泛的系統語言,語法簡單,上手容易,但是想要用好,少犯錯誤,也不是那么容易的一件事,可謂雖是居家旅行之良藥,但也是殺人滅口之利器~

今天就來聊聊 linux 下一個常見的問題:如何避免誤刪目錄。下文會詳細的講述不同的場景下誤刪目錄,以及相應的解決方案。

1、變量為空導致誤刪文件

  • base_path=/usr/sbin?
  • tmp_file=`cmd_invalid`?
  • #?rm?-rf?$base_path/$tmp_file?
  • 這種情況下如果 cmd 執行出錯或者返回為空,后果將是災難性的,那如何防范呢?

    (1)利用 shell 的變量擴展功能,如果變量為空賦給默認值或者拋出異常退出腳本:

  • echo?${base_path:?var?is?empty}/${tmp_file:?var?is?empty}??
  • -bash:?tmp_file:?var?is?empty?
  • (2)人肉判斷變量是否為空:

  • [[?${tmp_file}?==?""?]]?&&?echo?1?
  • 1?
  • [[?-z?${tmp_file}?]]?&&?echo?1?
  • 1?
  • (3)如果變量未定義還可以開啟 set 選項:

  • #?cat?a.sh?
  • set?-u?
  • b=?
  • echo?$b?
  • echo?$a?
  • echo?1?
  • #?bash?a.sh?
  • a.sh:?line?4:?a:?unbound?variable?
  • 2、路徑含有空格導致誤刪文件

    史上最經典的要數下面這個bumblebee項目了,這個項目本來不出名,不過,程序在其安裝腳本install.sh里的一個bug讓這個項目一下子成了全世界最矚目的項目。

    那我們該如何防范這種問題呢?

    (1)良好的編程習慣:變量加引號防止擴展

  • path="/usr/local?/sbin"??
  • #?rm?-rf?$path??
  • rm?-rf?"$path"?
  • (2)對變量進行語義檢查

    比如檢測是否含有空格等特殊字符,不通用,不推薦這么做

    3、目錄或文件含有特殊字符導致誤刪文件

  • ll??
  • 總用量?8??
  • drwxrwxr-x?2?work?work?4096?11月?24?18:57?'~'??
  • -rw-rw-r--?1?work?work?34?11月?24?19:49?a.sh??
  • #?rm?-rf?~?
  • 那我們該如何防范這種問題呢?

    (1)良好的編程習慣:變量加引號防止擴展

  • rm?-rf?"~"?
  • (2)如果不確定,刪除之前 echo 或 find 一下,看變量被擴展成啥了

  • echo?rm?-rf?"~"??
  • rm?-rf?~??
  • echo?rm?-rf?~??
  • rm?-rf?/home/work?
  • 4、cd 切換目錄失敗,導致文件被誤刪

  • cd?ooxx_path_not_exsit??
  • rm?-rf?*.exe?
  • 恭喜這種情況下你的當前目錄下匹配文件都會被誤刪,那我們該如何防范這種問題呢?

    (1)使用邏輯短路操作

  • cd?path?&&?rm?-rf?*.exe?
  • (2)檢測 path 是否存在

  • [[?-d?~?]]?&&?echo?1??
  • 1?
  • 5、終極解決方案

    不要使用 root 操作系統資源,這樣至少不會刪除系統文件。

    6、在登錄 shell 下使用友好的提示符

    友好的命令提示符能時刻提醒操作者當前在哪個路徑下,避免錯誤的路徑下操作文件。

    OK,本文到此就結束了,列舉了一些常見的case和解決方案,希望能對大家有所啟發,如果有其他的 case 和建議也歡迎交流~





    本文作者:佚名 來源:51CTO

    總結

    以上是生活随笔為你收集整理的Linux Shell 从入门到删除根目录跑路指南的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。