TranslateProject/translated/tech/20161109 How to Recover a Deleted File in Linux.md
jasminepeng 6d840439cb 校对完毕
sorry to forget to add my ID. submit again.
2016-11-21 15:43:37 +08:00

4.9 KiB
Raw Blame History

如何在 Linux 中恢复一个删除了的文件

你曾经是否遇到这样的事?你意识到你已经通过删除键,或者在命令行中使用 rm 命令,错误的删除了一个不该删除的文件。

在第一种情况下,你可以到垃圾箱,搜索文件然后把它复原到原始位置。但是第二种情况又该怎么办呢你可能知道Linux 命令行不会把删除的文件放到任何位置,而是直接把它们清除了,于是它们不再存在了。

在这篇文章里,将分享一个很有帮助的技巧来避免此事发生。同时,也会分享一个工具,不小心删除了某些不该删除的文件时,也许用得上。

rm -i 创建一个别名

-i' 选项和 rm 命令(也包括其他文件处理命令比如 cp 或者 mv)同时使用时,在删除文件前会出现一个提示。

这同样也可以运用到复制,移动或重命名一个文件,当所在位置已经存在一个和目标文件同名的文件时。

这个提示给你第二次机会来考虑是否真的要删除该文件 - 如果你在这个提示上选择确定,那么文件就被删除了。这种情况下,很抱歉,这个技巧没能保护你远离自己的粗心。

为了让 rm 成为 rm -i 别名,这样做:

alias rm='rm -i'

** alias ** 命令将确定 rm 现在已经成为了别名:

增加 rm 别名的命令

增加 rm 别名的命令

然而,这只能在当前用户的当前 shell 上有效。为了永久改变,你必须像下面展示的这样把它保存到 '~/.bashrc' 一些版本的 Linux 系统可能是 '~/.profile')。

在 Linux 中永久增添别名

在 Linux 中永久增添别名

为了让 '~/.bashrc'(或 '~/.profile')中所做的改变立即生效,从当前 shell 中运行文件:

. ~/.bashrc

在 Linux 中激活别名

在 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

本文由 LCTT 原创编译,Linux中国 荣誉推出