如何防止意外 rm -rf /*?
rm -rf /*
我只是不小心跑了,但我的意思是rm -rf ./*
(注意斜線後面的星號)。
alias rm='rm -i'
預設情況下並--preserve-root
沒有救我,所以有什麼自動保護措施嗎?我不是 root 並立即取消了該命令,但在某處或某處有一些寬鬆的權限,因為我注意到我的 Bash 提示已經中斷。我不想依賴權限而不是 root(我可能會犯同樣的錯誤
sudo
),我不想因為系統某處失去一個文件而尋找神秘的錯誤,所以,備份和sudo
好的,但對於這種特定情況,我想要更好的東西。關於三思而後行。我實際上正在使用它!但我用它來解決一些涉及 10 種不同事物的複雜程式任務。我沉浸在這項任務中已經足夠深了,沒有任何腦力來檢查標誌和路徑,我什至不考慮命令和參數,我認為是’空目前目錄’之類的操作,我大腦的不同部分將它們轉換為命令,有時它會出錯。我希望電腦能夠糾正它們,至少是那些危險的。
我遵循的技巧之一是在使用命令時放在
#
開頭。rm
root@localhost:~# #rm -rf /
這可以防止
rm
在錯誤的文件/目錄上意外執行。驗證後,#
從頭刪除。這個技巧很有效,因為在 Bash 中,以 開頭的單詞#
會導致該單詞和該行上的所有剩餘字元被忽略。所以這個命令被簡單地忽略了。或者
如果你想阻止任何重要的目錄,還有一個技巧。
在該目錄中創建一個名為的文件
-i
。這麼奇怪的文件是怎麼產生的?使用touch -- -i
或touch ./-i
現在嘗試
rm -rf *
:sachin@sachin-ThinkPad-T420:~$ touch {1..4} sachin@sachin-ThinkPad-T420:~$ touch -- -i sachin@sachin-ThinkPad-T420:~$ ls 1 2 3 4 -i sachin@sachin-ThinkPad-T420:~$ rm -rf * rm: remove regular empty file `1'? n rm: remove regular empty file `2'?
此處
*
將擴展-i
為命令行,因此您的命令最終變為rm -rf -i
. 因此,命令將在刪除之前提示。您可以將此文件放在您的/
,/home/
,/etc/
等中。或者
--preserve-root
用作rm
. _ 在rm
包含在較新的coreutils
軟體包中,此選項是預設選項。--preserve-root do not remove `/' (default)
或者
使用安全rm
摘自網站:
Safe-rm 是一種安全工具,旨在通過將 /bin/rm 替換為包裝器來防止意外刪除重要文件,該包裝器會根據可配置的文件和目錄黑名單檢查給定的參數,這些文件和目錄不應被刪除。
嘗試刪除這些受保護文件或目錄之一的使用者將無法這樣做,而是會顯示一條警告消息:
$ rm -rf /usr Skipping /usr