這篇文章主要介紹“Linux Shell誤刪除根目錄怎么解決”,在日常操作中,相信很多人在Linux Shell誤刪除根目錄怎么解決問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux Shell誤刪除根目錄怎么解決”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、漳縣ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的漳縣網(wǎng)站制作公司
1、變量為空導(dǎo)致誤刪文件
base_path=/usr/sbin tmp_file=`cmd_invalid` # rm -rf $base_path/$tmp_file
這種情況下如果 cmd 執(zhí)行出錯(cuò)或者返回為空,后果將是災(zāi)難性的,那如何防范呢?
(1)利用 shell 的變量擴(kuò)展功能,如果變量為空賦給默認(rèn)值或者拋出異常退出腳本:
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 選項(xiàng):
# cat a.sh set -u b= echo $b echo $a echo 1 # bash a.sh a.sh: line 4: a: unbound variable
2、路徑含有空格導(dǎo)致誤刪文件
史上最經(jīng)典的要數(shù)下面這個(gè)bumblebee項(xiàng)目了,這個(gè)項(xiàng)目本來(lái)不出名,不過(guò),程序在其安裝腳本install.sh里的一個(gè)bug讓這個(gè)項(xiàng)目一下子成了全世界最矚目的項(xiàng)目。
那我們?cè)撊绾畏婪哆@種問(wèn)題呢?
(1)良好的編程習(xí)慣:變量加引號(hào)防止擴(kuò)展
path="/usr/local /sbin" # rm -rf $path rm -rf "$path"
(2)對(duì)變量進(jìn)行語(yǔ)義檢查
比如檢測(cè)是否含有空格等特殊字符,不通用,不推薦這么做
3、目錄或文件含有特殊字符導(dǎo)致誤刪文件
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 ~
那我們?cè)撊绾畏婪哆@種問(wèn)題呢?
(1)良好的編程習(xí)慣:變量加引號(hào)防止擴(kuò)展
rm -rf "~"
(2)如果不確定,刪除之前 echo 或 find 一下,看變量被擴(kuò)展成啥了
echo rm -rf "~" rm -rf ~ echo rm -rf ~ rm -rf /home/work
4、cd 切換目錄失敗,導(dǎo)致文件被誤刪
cd ooxx_path_not_exsit rm -rf *.exe
恭喜這種情況下你的當(dāng)前目錄下匹配文件都會(huì)被誤刪,那我們?cè)撊绾畏婪哆@種問(wèn)題呢?
(1)使用邏輯短路操作
cd path && rm -rf *.exe
(2)檢測(cè) path 是否存在
[[ -d ~ ]] && echo 1 1
5、***解決方案
不要使用 root 操作系統(tǒng)資源,這樣至少不會(huì)刪除系統(tǒng)文件。
6、在登錄 shell 下使用友好的提示符
友好的命令提示符能時(shí)刻提醒操作者當(dāng)前在哪個(gè)路徑下,避免錯(cuò)誤的路徑下操作文件。
到此,關(guān)于“Linux Shell誤刪除根目錄怎么解決”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!