Linux下误删文件的解决之道

系统 Linux
在这篇文章中,我们阐述了如何避免意外删除一个不该删除的文件,以及万一这类事情发生,如何恢复文件。还要警告一下, foremost 可能运行很长时间,时间长短取决于分区的大小。

你曾经是否遇到这样的事?当你发现的时候,你已经通过删除键,或者在命令行中使用 rm 命令,错误的删除了一个不该删除的文件。在***种情况下,你可以到垃圾箱,搜索那个文件,然后把它复原到原始位置。但是第二种情况又该怎么办呢?你可能知道,Linux 命令行不会把删除的文件转移到任何位置,而是直接把它们移除了,biu~,它们就不复存在了。

[[179504]]

把删除创建为 rm -i 的别名

当 -i 选项配合 rm 命令(也包括其他文件处理命令比如 cp 或者 mv)使用时,在删除文件前会出现一个提示。这同样也可以运用到当复制,移动或重命名一个文件,当所在位置已经存在一个和目标文件同名的文件时。

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

为了 rm -i 别名替代 rm ,这样做:

  1. alias rm='rm -i' 

运行 alias 命令可以确定 rm 现在已经被别名了:

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

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

  1. . ~/.bashrc 

取证工具-Foremost

然而,当你意识到你意外的删除了系统中的一个文件并感到恐慌时-不用担心。让我们来看一看 foremost,一个用来处理这种状况的取证工具。

CentOS/RHEL 7 中安装 Foremost,需要首先启用 Repoforge:/strong>

  1. # rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm  
  2. # yum install foremost 

在 Debian 及其衍生系统中,需这样做:

  1. # aptitude install foremost 

安装完成后,我们做一个简单的测试吧。首先删除 /boot/images 目录下一个名为 nosdos.jpg 的图像文件:

  1. # cd images  
  2. # rm nosdos.jpg 

要恢复这个文件,如下所示使用 foremost(要先确认所在分区 - 本例中, /boot 位于 /dev/sda1 分区中)。

  1. # foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued 

其中,/home/gacanepa/rescued 是另外一个磁盘中的目录 - 请记住,把文件恢复到被删除文件所在的磁盘中不是一个明智的做法。如果在恢复过程中,占用了被删除文件之前所在的磁盘分区,就可能无法恢复文件。另外,进行文件恢复操作前不要做任何其他操作。

当 foremost 执行完成以后,恢复的文件(如果可以恢复)将能够在目录 ·/home/gacanepa/rescue/jpg` 中找到。

总结

在这篇文章中,我们阐述了如何避免意外删除一个不该删除的文件,以及万一这类事情发生,如何恢复文件。还要警告一下, foremost 可能运行很长时间,时间长短取决于分区的大小。

如果您有什么问题或想法,和往常一样,不要犹豫,告诉我们。可以给我们留言。

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2009-05-05 14:30:19

虚拟化安全解决方案

2012-02-13 10:30:18

2009-10-10 15:26:11

资产管理

2022-04-21 09:26:41

FastDFS开源分布式文件系统

2015-07-20 10:06:12

2011-08-22 15:39:38

Linux

2018-07-06 14:30:23

WOT

2022-01-14 08:08:11

Java依赖冲突

2021-03-28 21:33:07

Redis热点key

2011-01-19 13:12:27

2012-06-05 19:18:43

BYODAvayaAvaya IDE

2014-09-29 16:44:12

2011-08-18 14:23:52

Big Data

2011-09-10 20:48:34

2016-11-10 18:57:19

双十一高并发

2021-05-13 16:49:36

区块链技术应用

2015-11-24 18:01:43

数字化医疗医院PACS系统华为

2011-11-08 10:11:34

2011-02-02 16:18:39

2018-08-01 14:00:49

MySQL数据库PHP
点赞
收藏

51CTO技术栈公众号