天天看點

如何在 Linux 中恢複一個删除了的檔案

你曾經是否遇到這樣的事?當你發現的時候,你已經通過删除鍵,或者在指令行中使用 <code>rm</code> 指令,錯誤的删除了一個不該删除的檔案。

在這篇文章裡,将分享一個很有用的技巧來避免此事發生。同時,也會分享一個工具,不小心删除了某些不該删除的檔案時,也許用得上。

<a target="_blank"></a>

這個提示會給你第二次機會來考慮是否真的要删除該檔案 - 如果你在這個提示上選擇确定,那麼檔案就被删除了。這種情況下,很抱歉,這個技巧并不能防止你的粗心大意。

為了 <code>rm -i</code> 别名替代 <code>rm</code> ,這樣做:

<code>alias rm='rm -i'</code>

運作 <code>alias</code> 指令可以确定 <code>rm</code> 現在已經被别名了:

如何在 Linux 中恢複一個删除了的檔案

為 rm 增加别名

然而,這隻能在目前使用者的目前 shell 上有效。為了永久改變,你必須像下面展示的這樣把它儲存到 <code>~/.bashrc</code> 中(一些版本的 linux 系統可能是 <code>~/.profile</code>)。

如何在 Linux 中恢複一個删除了的檔案

在 linux 中永久增添别名

為了讓 <code>~/.bashrc</code>(或 <code>~/.profile</code>)中所做的改變立即生效,從目前 shell 中運作檔案:

<code>. ~/.bashrc</code>

如何在 Linux 中恢複一個删除了的檔案

在 linux 中激活别名

但願你對于你的檔案足夠小心,當你要從外部磁盤或 usb 裝置中恢複丢失的檔案時,你隻需使用這個工具即可。

然而,當你意識到你意外的删除了系統中的一個檔案并感到恐慌時-不用擔心。讓我們來看一看<code>foremost</code>,一個用來處理這種狀況的驗證工具。

要在 centos/rhel 7 中安裝 foremost,需要首先啟用 repoforge:

<code># rpm -uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm</code>

<code># yum install foremost</code>

然而在 debian 及其衍生系統中,需這樣做:

<code># aptitude install foremost</code>

安裝完成後,我們做一個簡單的測試吧。首先删除 <code>/boot/images</code> 目錄下一個名為 <code>nosdos.jpg</code> 的圖像檔案:

<code># cd images</code>

<code># rm nosdos.jpg</code>

要恢複這個檔案,如下所示使用 <code>foremost</code>(要先确認所在分區 - 本例中, <code>/boot</code> 位于 <code>/dev/sda1</code>分區中)。

<code># foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued</code>

其中,<code>/home/gacanepa/rescued</code> 是另外一個磁盤中的目錄 - 請記住,把檔案恢複到被删除檔案所在的磁盤中不是一個明智的做法。

如果在恢複過程中,占用了被删除檔案之前所在的磁盤分區,就可能無法恢複檔案。另外,進行檔案恢複操作前不要做任何其他操作。

當 <code>foremost</code> 執行完成以後,恢複的檔案(如果可以恢複)将能夠在目錄 ·/home/gacanepa/rescue/jpg` 中找到。

原文釋出時間為:2017-11-21

本文來自雲栖社群合作夥伴“linux中國”

繼續閱讀