溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux Shell誤刪除根目錄怎么解決

發(fā)布時(shí)間:2021-12-17 16:03:57 來(lái)源:億速云 閱讀:922 作者:iii 欄目:系統(tǒng)運(yùn)維

這篇文章主要介紹“Linux Shell誤刪除根目錄怎么解決”,在日常操作中,相信很多人在Linux Shell誤刪除根目錄怎么解決問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Linux Shell誤刪除根目錄怎么解決”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

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)如果變量未定義還可以開(kāi)啟 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)目。

Linux Shell誤刪除根目錄怎么解決

那我們?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)致誤刪文件

Linux Shell誤刪除根目錄怎么解決

Linux Shell誤刪除根目錄怎么解決

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ò)誤的路徑下操作文件。

Linux Shell誤刪除根目錄怎么解決

Linux Shell誤刪除根目錄怎么解決

到此,關(guān)于“Linux Shell誤刪除根目錄怎么解決”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI