rm好兇殘,太TM嚇人了!
圖片來自 Pexels
完事之后,剃頭刀上不會(huì)占有半點(diǎn)鮮血和毛發(fā)。我很羨慕他的刀。
到底是他的刀厲害?還是他的人厲害?明白事理之后,我明白了是后者,而不是他手中的屠龍?zhí)觐^刀!
隨著年齡越來越大,我踏上了編程這條道路。一次偶然的原因,看到同事上上下翻飛的運(yùn)行 rm 命令,勾起了我久遠(yuǎn)的、對(duì)刀的回憶。
跨上一把刀,行走天下,是一件非常瀟灑的事。rm 這個(gè)命令,圓你的武俠夢(mèng),很合適。只要它所到之處,玉石俱焚,寸草不生。
獲取這把刀的成本很低,你只要會(huì)使用 Linux 就行了。顯然,人人都擁有這么犀利的刀,會(huì)引起混亂。
如果你的功力不夠,掌控不了這把刀,那么就會(huì)被它反噬;如果你對(duì)它不尊重,它也會(huì)誤傷到你自己,不留一點(diǎn)情面;如果你心存惡念,它就能在瞬間滿足你。
每一年,都有好多人因?yàn)槲璧秱搅俗约?,或者傷了人進(jìn)了局子。
在 rm 命令的刀下,是無數(shù)血淚堆砌的故事,每個(gè)故事都讓你潸然淚下,或者露出兔死狐悲的哀傷。
rm 這個(gè)命令,到底是殺雞刀,還是殺牛刀?要看掌刀的人;是束之高閣,還是藏在袖中,要看是否還心存熱血。
但現(xiàn)實(shí)的生活總不會(huì)讓情緒發(fā)泄的太澎湃。多為多年混社會(huì)的人,我們?cè)缫呀?jīng)學(xué)會(huì)了忍耐。
當(dāng)你的命令行輸入到了 rm -rf /,會(huì)不由自主的再按下回退鍵。就像烏龜發(fā)現(xiàn)了殼外的危險(xiǎn),把龜頭緊緊縮在殼里面。
雖然憋屈了一點(diǎn),但畢竟安全。
安全只是暫時(shí)的
但安全,只是暫時(shí)的。
有一次,有一個(gè)偉大的布道者,和自己的小弟們普及命令行知識(shí)。他聊到了 rm -rf。
出于對(duì)寶刀的熱愛,就像真正愛刀的人,會(huì)用自己的舌頭和口水,舔凈刀上污漬直到一塵不染。他打開了一個(gè)命令行終端,輸入了 rm -rf / 這個(gè)命令。
“這是一個(gè)危險(xiǎn)的命令!”,他說,“你們永遠(yuǎn)不要在線上環(huán)境運(yùn)行”。
旁邊的小迷弟小迷妹們都很一臉崇拜的看著他,聆聽教誨。
好久沒有這么讓人陶醉的感覺了,他不由自主滔滔不絕的講解了起來,毫無察覺自己的胳膊肘子壓上了鍵盤,蜻蜓點(diǎn)水一樣觸了一下 Enter 鍵。
以實(shí)際行動(dòng)來驗(yàn)證,從實(shí)踐中出真知,是互聯(lián)網(wǎng)人一貫的作風(fēng)。
屏蔽起來
當(dāng)這種翻車事故變得越來越多,我們就更能了解到 rm 的兇殘。尤其是,一些不注意的條件,就讓 shell 腳本成為觸發(fā)的元兇。
電子信息不同于現(xiàn)實(shí)中的物品,你只要銷毀了它,它可能就真的永遠(yuǎn)消失了,就如同靈魂一樣。
為了保證一定程度的安全,我們可以把 rm 命令變成一個(gè)垃圾桶。
首先,創(chuàng)建一個(gè)垃圾桶。
- mkdir ~/.Trash &> /dev/null
- chmod 777 ~/.Trash
然后,把原生的 rm 命令給廢掉。
- alias rm="sh /usr/bin/rm.sh"
簡(jiǎn)單的 rm 腳本可能長(zhǎng)這個(gè)樣子。
- #!/bin/bash
- while [ ! -z "$1" ]; do
- mv "$1" ~/.Trash/
- shift
- done
當(dāng)然,我們這只是一個(gè)簡(jiǎn)單的腳本。但無論你做的再周詳,也阻止不了誤刪。比如,將 rm -R ./lib/ 寫成了 rm -R /lib/。
把文件找回來
在 Linux 下面,除非是作死的 rm -rf /,誤刪一兩個(gè)文件,還是有機(jī)會(huì)找回來的。要想徹底的銷毀文件,你需要使用 shred 命令。
rm 刪掉的文件,其實(shí)只是將指向數(shù)據(jù)塊的索引點(diǎn)(information nodes)釋放,只要不被覆蓋,數(shù)據(jù)其實(shí)還在硬盤上。
只要你刪除文件之后,沒有再覆寫區(qū)塊的數(shù)據(jù),那就有很大概率找回來。就像你刪除了一個(gè)運(yùn)行時(shí)的文件,你使用 lsof 命令,依然能夠看到 /var/log/messages(deleted)類似的字樣。
如果你刪除的文件還被別的進(jìn)程所使用,那么恭喜你,你可以直接找到它。比如使用的進(jìn)程 id 是 996,那么文件就躺在 /proc/996/fd/ 下面。
所以不小心刪掉之后,反射弧不宜過長(zhǎng)。不能等一兩天之后,突然就一哆嗦:哎吆 wocao?我的文件怎么不見了?
如果并沒有進(jìn)程使用這些文件,那就麻煩了一些。首先,你得停止你的爛七八糟的進(jìn)程,還原一個(gè)干干凈凈的機(jī)器,免得文件被覆蓋。如果你還不放心,直接 unmount 分區(qū)。
然后,恢復(fù)文件還得借助工具,比如 extundelete。
結(jié)語
如果你因?yàn)?rm 這把刀,傷到了自己,以至于坐牢,那你一定在一個(gè)比較 2 的公司。
有點(diǎn)安全意識(shí)到公司,肯定不會(huì)因?yàn)?rm 這么兩個(gè)字母就停擺了。
刪根?不好意思,我們業(yè)務(wù)機(jī)器有多個(gè)節(jié)點(diǎn),你只是 xx 分之一;刪庫?不好意思,我們有熱備冷備,甚至不同的業(yè)務(wù)有不同的庫表,你認(rèn)為刪除物理文件就能搞死公司,妄想!
但即使如此,也要管住自己的手。因?yàn)橛行┕窘锝镉?jì)較,并不是你想象得那么善良。
不管你是主觀故意還是因?yàn)槭侄?,最后免不了一堆麻煩。沒人會(huì)為低級(jí)錯(cuò)誤擦褲子,只能運(yùn)行命令的人獨(dú)自承受。
在打工、賺錢的同時(shí),首先保護(hù)自己才是最重要的。所以,你有啥想不開的?要用 rm -rf 命令?僅僅是想要弘揚(yáng)你俠士的風(fēng)范么?
你要明白,做一個(gè)合格的小程序員,小運(yùn)維,并不比理發(fā)師安全多少。寶刀在手,可以削蘋果,可以開瓶蓋,也可以分蛋糕,但從來不會(huì)血濺當(dāng)場(chǎng)。因?yàn)槲覀兪俏拿魅恕?/p>
作者:小姐姐味道
編輯:陶家龍
出處:轉(zhuǎn)載自公眾號(hào)小姐姐味道(ID:xjjdog)