Linux下误删文件的解决之道

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

把删除创建为 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 可能运行很长时间,时间长短取决于分区的大小。

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

作者:linuxcn

来源:51CTO

时间: 2024-08-17 16:06:22

Linux下误删文件的解决之道的相关文章

inux-LINUX 文件夹下误删文件如何恢复

问题描述 LINUX 文件夹下误删文件如何恢复 LINUX 下,TOMCAT ROOT里的内容先全删了.此时叫A1,然后重新上传了ROOT文件夹并解压了,此时是A2,发现弄错了,于是把A2也全删了.但是A1不知道怎么恢复,求大神帮助,在线等,QQ:100079465,报酬:100元支付宝转账. 解决方案 用r-studio一类的恢复软件,如果你了解文件系统的细节,也可以用winhex

Linux下删除文件下彻底删除文件

  在linux中删除文件与文件夹我们可以直接使用rm就可以删除了,彻底删除文件或文件夹我们可以使用shred命令来完成,下面我给大家介绍介绍. Linux删除文件夹命令 linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 删除目录.文件 rm(remove) 功能说明:删除文件或目录. 语 法:rm [-dfirv][--help][--version

Linux下脚本文件的seq的学习

问题描述 Linux下脚本文件的seq的学习 B=seq -s " " -f"iconback%02g" 1 $A C=seq -s " " -f"img%0g" 1 $A 请问哪位知道如何让B,C 打印出来的值一一对应,例如:img1="iconback01",img2="iconback02".... 解决方案 seq没法支持两个变量,用awk来 awk 'BEGIN { for(i

Linux 下目录文件权限(命令)的查看和修改_Linux

Linux 下目录文件权限的查看和修改 在我的服务器下面有这几个文件夹 同时用ls -l也可以查看到这几个文件的权限. 看其中的assets文件一共有十位数,其中: 最前面那个 - 代表的是类型 中间那三个 rwx 代表的是所有者(user)拥有的权限 然后那三个 rwx 代表的是组群(group)拥有的权限 最后那三个 rwx 代表的是其他人(other)拥有的权限 r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) -表示相应的权

Linux下利用文件描述符恢复的成功失败实验

    数据误删除是作为初级运维人员常常遇到的"低级错误",一些有经验的老手有时也在疲劳.不冷静的情况下"马失前蹄".一旦误删除数据文件,尽快采用影响最小.最迅速的手段恢复数据库是第一要务. 恢复数据的方法很多,比如冷热备份.闪回数据库等等,如果是直接从操作系统OS层面删除数据文件,在Linux/Unix环境下,有一些优选手段可以使用.其中之一就是文件描述符(File Description).   1.聊聊File Description   不同的操作系统,在实

linux下查看文件-Linux下如果要在根目录查找内容包含某个字符串的文件,怎么查找啊,谢谢

问题描述 Linux下如果要在根目录查找内容包含某个字符串的文件,怎么查找啊,谢谢 我想在Linux下查看某个函数的定义在那个文件里,前提是我不知道在那个文件夹下面,有谁可以帮我看看啊,谢谢 解决方案 在某个目录下的所有文件的内容中,查找包含某个字符串的文件Linux下查找包含字符串的文件命令linux下查找某个目录下包含某个字符串的文件 解决方案二: 问题终于解决了,非常感谢! 解决方案三: grep -rHwns "search str" / 解决方案四: grep -n &quo

Linux下的文件权限设置修改详解

我们已经知道文件权限对于系统的安全重要性了,也知道文件权限与用户与用户组的关系了,那么,如何修改文件的权限呢?我们可以修改多少文件权限呢?其实,一个文件的权限很多.我们先介绍几个简单的,例如:用户组.拥有者.各种身份的权限等等. • chgrp:改变文件所属用户组 . • chown:改变文件拥有者. • chmod:改变文件的属性.SUID等特性. 更改所属用户组, chgrp 改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写.这样就很好记

Linux下的文件权限相关总结

• chgrp:改变文件所属用户组 . • chown:改变文件拥有者. • chmod:改变文件的属性.SUID等特性. 更改所属用户组, chgrp 改变文件的用户组很简单,直接用chgrp即可,这个命令就是change group(改变用户组)的缩写.这样就很好记了.不过,请记住,要改变成为的用户组名称,必须在 /etc/group里存在,否则就会显示错误. 假设以root的身份登入FC4,那么,在你的家目录内有一个install.log文件,如何改变该文件的用户组呢?假设你已经知道在 /

linux下的文件和目录权限!

在linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录.通过设定权限可以从以下三种访问方式限制访问权限:只允许用户自己访问:允许一个预先指定的用户组中的用户访问:允许系统中的任何用户访问.同时,用户能够控制一个给定的文件或目录的访问程度.一个文件活目录可能有读.写及执行权限.当创建一个文件时,系统会自动地赋予文件所有者读和写的权限,这样可以允许所有者能够显示文件内容和修改文件.文件所有者可以将这些权限改变为任何他想指定的权限.一个文件也许只有读权限,