在使用Linux系统时,你有遇到过这种情况吗?就是通过Del键或在命令行中使用rm
错误地删除了一个文件 ,也就是不小心造成的误删。
在第一种情况下,始终可以打开“回收站”,搜索该文件并将其恢复到原始位置。但第二种情况呢?相信你可能知道,Linux命令行不会将删除的文件发送到任何地方,它会彻底删除它们。
那么应该怎么办?在本文中,小编将分享一个可能有助于防止这种情况发生的小技巧,如果你经常这样大意误删文件的话,可以考虑使用的相关工具。
例如:Scalpel恢复工具:恢复Linux已删除文件/文件夹
创建“rm -i”别名
该-i
与rm(包括其它文件操作工具,例如cp或mv )一起使用时,会在删除文件之前出现提示。当然,同样适用于复制、移动或重命名文件,也就是已存在同名文件的目录位置。
此提示让你有第二次机会考虑是否确实要删除该文件,也就是会弹出一个确认提醒。如果确认提示,该文件就会被删除。在这种情况下,如果确定删除,那么文件最终还是会被删除的。要将rm替换为别名'rm -i'
,请执行以下操作:
alias rm='rm -i'
alias命令将确认rm现在已使用别名:
但是,这只会在当前shell中的当前用户会话期间有效。要使更改永久生效,必须将其保存到~/.bashrc
(某些发行版可能会使用~/.profile
)配置文件中,具体如下所示:
为了使~/.bashrc
(或~/.profile
) 中的更改立即生效,请从当前shell中获取文件:
. ~/.bashrc
恢复工具–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(需要首先识别底层分区 -在本例中/dev/sda1
就是/boot
所在的位置):
# foremost -t jpg -i /dev/sda1 -o /home/gacanepa/rescued
其中/home/gacanepa/rescued是单独磁盘上的目录。需要注意的是,将文件恢复到被删除文件所在的驱动器上不是明智之举。如果在恢复过程中,你占用了已删除文件原来所在的相同磁盘扇区,则可能无法恢复任何内容。此外,在执行恢复之前必须停止所有操作。
最重要的是,完成执行后,恢复的文件(如果可以恢复的话)将在/home/gacanepa/rescued/jpg目录中找到。
概括
在本文中,小编主要介绍如何避免意外删除文件以及怎样在发生此类意外事件时尝试恢复该文件。请注意,根据分区的大小,Foremost工具可能需要相当长的时间才能恢复成功。