在Unix/Linux下,最危險的指令恐怕就屬rm指令了,每次在root下使用這個指令的時候,我都要盯着指令行看上幾分鐘才敢把回車敲下去。以前,看到同僚在腳本中使用rm指令 —— <code>rm {$App_Dir}/*</code> 。因為腳本沒有判斷變量$App_Dir是否為空,結果,在一次用root操作的時候,整個作業系統一下就不見了,還好隻是開發機。從此,我們大家都再也不敢使用rm指令了。
這裡給大家介紹一個小技巧用來恢複一些被rm了的檔案中的資料。我們知道,rm指令其實并不是真正的從實體上删除檔案内容,隻過不把檔案的inode回收了,其實檔案内容還在硬碟上。是以,如果你不小删除了什麼比較重要的程式配置檔案的時候,我們完全可以用grep指令在恢複,下面是一個恢複示例:
<code>1</code>
<code>grep</code> <code>-a -B 50 -A 60</code><code>'some string in the file'</code> <code>/dev/sda1 > results.txt</code>
說明:
關于grep的-a意為–binary-files=text,也就是把二進制檔案當作文本檔案。
-B和-A的選項就是這段字元串之前幾行和之後幾行。
/dev/sda1,就是硬碟裝置,
> results.txt,就是把結果重定向到results.txt檔案中。
當然,我還是建議你把root使用者的rm的指令用alias換成别一個腳本,那個腳本會幫你把删除的檔案放到某個地方。