如何在 Linux 中恢復一個刪除了的文件
把刪除創建為 rm -i
的別名
當 -i
選項配合 rm
命令(也包括其他文件處理命令比如 cp 或者 mv)使用時,在刪除文件前會出現一個提示。
這同樣也可以運用到當複製,移動或重命名一個文件,當所在位置已經存在一個和目標文件同名的文件時。
這個提示會給你第二次機會來考慮是否真的要刪除該文件 - 如果你在這個提示上選擇確定,那麼文件就被刪除了。這種情況下,很抱歉,這個技巧並不能防止你的粗心大意。
為了 rm -i
別名替代 rm
,這樣做:
alias rm='rm -i'
運行 alias
命令可以確定 rm
現在已經被別名了:
為 rm 增加別名
然而,這隻能在當前用戶的當前 shell 上有效。為了永久改變,你必須像下面展示的這樣把它保存到 ~/.bashrc
中(一些版本的 Linux 系統可能是 ~/.profile
)。
在 Linux 中永久增添別名
為了讓 ~/.bashrc
(或 ~/.profile
)中所做的改變立即生效,從當前 shell 中運行文件:
. ~/.bashrc
在 Linux 中激活別名
取證工具-Foremost
但願你對於你的文件足夠小心,當你要從外部磁碟或 USB 設備中恢復丟失的文件時,你只需使用這個工具即可。
然而,當你意識到你意外的刪除了系統中的一個文件並感到恐慌時-不用擔心。讓我們來看一看 foremost
,一個用來處理這種狀況的取證工具。
要在 CentOS/RHEL 7 中安裝 Foremost,需要首先啟用 Repoforge:
# rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install foremost
然而在 Debian 及其衍生系統中,需這樣做:
# aptitude install foremost
安裝完成後,我們做一個簡單的測試吧。首先刪除 /boot/images
目錄下一個名為 nosdos.jpg
的圖像文件:
# cd images
# rm nosdos.jpg
要恢復這個文件,如下所示使用 foremost
(要先確認所在分區 - 本例中, /boot
位於 /dev/sda1
分區中)。
# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued
其中,/home/gacanepa/rescued
是另外一個磁碟中的目錄 - 請記住,把文件恢復到被刪除文件所在的磁碟中不是一個明智的做法。
如果在恢復過程中,佔用了被刪除文件之前所在的磁碟分區,就可能無法恢復文件。另外,進行文件恢復操作前不要做任何其他操作。
當 foremost
執行完成以後,恢復的文件(如果可以恢復)將能夠在目錄 ·/home/gacanepa/rescue/jpg` 中找到。
總結
在這篇文章中,我們闡述了如何避免意外刪除一個不該刪除的文件,以及萬一這類事情發生,如何恢復文件。還要警告一下, foremost
可能運行很長時間,時間長短取決於分區的大小。
如果您有什麼問題或想法,和往常一樣,不要猶豫,告訴我們。可以給我們留言。
via: http://www.tecmint.com/recover-deleted-file-in-linux/
作者:Gabriel Cánepa 譯者:ucasFL 校對:jasminepeng
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive