Linux 黑話解釋:什么是 sudo rm -rf?為什么如此危險?
當(dāng)你剛接觸 Linux 時,你會經(jīng)常遇到這樣的建議:永遠(yuǎn)不要運行 sudo rm -rf /。在 Linux 世界里,更是圍繞著 sudo rm -rf 有很多梗。
但似乎對于它也有一些混亂的認(rèn)識。在 清理 Ubuntu 以騰出空間 的教程中,我建議運行一些涉及 sudo 和 rm -rf 的命令。一位讀者問我,如果 sudo rm -rf 是一個不應(yīng)該運行的危險的 Linux 命令,我為什么要建議這樣做。
因此,我想到了寫一篇 Linux 黑話解釋,以消除誤解。
sudo rm -rf 在做什么?
讓我們按步驟來學(xué)習(xí)。
rm 命令用于 在 Linux 命令行中刪除文件和目錄。
$ rm agatha$
但是因為有只讀的 文件權(quán)限,有些文件不會被立即刪除。它們必須用選項 -f 強制刪除。
$ rm booksrm: remove write-protected regular file 'books'? y$ rm -f christie$
另外,rm 命令不能被用來直接刪除目錄(文件夾)。你必須在 rm 命令中使用遞歸選項 -r。
$ rm new_dirrm: cannot remove 'new_dir': Is a directory
因此最終,rm -rf 命令意味著遞歸地、強制刪除指定的目錄。
$ rm -r new_dirrm: remove write-protected regular file 'new_dir/books'? ^C$ rm -rf new_dir$
下面是上述所有命令的截圖。
解釋 rm 命令的例子
如果你在 rm -rf 命令前加入 sudo,你就是在刪除具有 root 權(quán)限的文件。這意味著你可以刪除由 root 用戶 擁有的系統(tǒng)文件。
所以,sudo rm -rf 是一個危險的 Linux 命令?
嗯,任何刪除東西的命令都可能是危險的,如果你不確定你正在刪除什么。
把 rm -rf 命令看作一把刀。刀是一個危險的東西嗎?有可能。如果你用刀切蔬菜,那是好事。如果你用刀切手指,那當(dāng)然是不好的。
rm -rf 命令也是如此。它本身并不危險。它只是用來刪除文件的。但是,如果你在不知情的情況下用它來刪除重要文件,那就有問題了。
現(xiàn)在來看看 sudo rm -rf /。
你知道,使用 sudo,你是以 root 身份運行一個命令,這允許你對系統(tǒng)進行任何改變。
/ 是根目錄的符號。/var 表示根目錄下的 var 目錄。/var/log/apt 指的是根目錄的 log 目錄下的 apt 目錄。
Linux 目錄層次表示法
按照 Linux 目錄層次結(jié)構(gòu),Linux 文件系統(tǒng)中的一切都從根目錄開始。如果你刪除了根目錄,你基本上就是刪除了系統(tǒng)中的所有文件。
這就是為什么建議不要運行 sudo rm -rf / 命令,因為你會抹去你的整個 Linux 系統(tǒng)。
請注意,在某些情況下,你可能正在運行像 sudo rm -rf /var/log/apt 這樣的命令,這可能是沒問題的。同樣,你必須注意你正在刪除的東西,就像你必須注意你正在用刀切割的東西一樣。
我在玩火:如果我運行 sudo rm -rf /,看看會發(fā)生什么呢?
大多數(shù) Linux 發(fā)行版都提供了一個故障安全保護,防止意外刪除根目錄。
$ sudo rm -rf /[sudo] password for abhishek:rm: it is dangerous to operate recursively on '/'rm: use --no-preserve-root to override this failsafe
我的意思是,人是會打錯字的,如果你不小心打了 / var/log/apt,而不是 /var/log/apt(/ 和 var 之間的空格意味著你給出了 / 和 var 目錄來刪除),你將會刪除根目錄。(LCTT 譯注:我真干過,鍵盤敲的飛起,結(jié)果多敲了一個空格,然后就丟了半個文件系統(tǒng) —— 那時候 Linux 還沒這種故障安全保護。)
使用 sudo rm -rf 時要注意
別擔(dān)心。你的 Linux 系統(tǒng)會照顧到這種意外。
現(xiàn)在,如果你一心想用 sudo rm -rf / 來破壞你的系統(tǒng)呢?你將必須使用它將要求你使用的 -no-preserve-root 選項與之配合。
不,請不要自己這樣做。讓我做給你看看。
所以,我在一個虛擬機中運行基本的操作系統(tǒng)。我運行 sudo rm -rf / --no-preserve-root,你可以在下面的視頻中看到燈光熄滅(大約 1 分鐘)。
清楚了么?
Linux 有一個活躍的社區(qū),大多數(shù)人都會幫助新用戶。 之所以說是大多數(shù),是是因為有一些的邪惡壞人潛伏著搗亂新用戶。他們經(jīng)常會建議對初學(xué)者所面臨的最簡單的問題運行 rm -rf /。我認(rèn)為這些白癡在這種邪惡行為中得到了某種至上主義的滿足。我會立即將他們從我管理的論壇和群組中踢出去。
我希望這篇文章能讓你更清楚地了解這些情況。你有可能仍然有一些困惑,特別是因為它涉及到根目錄、文件權(quán)限和其他新用戶可能不熟悉的東西。如果是這樣的話,請在評論區(qū)告訴我你的疑惑,我會盡力去解決。
最后,請記住。不要喝酒胡搞。在運行你的 Linux 系統(tǒng)時要安全駕駛。





























