0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

linux误删文件后的恢复方法

dyquk4xk2p3d 来源:良许Linux 2023-02-09 09:51 次阅读

对于linux下误删的文件,我们是否真的无法通过软件进行恢复呢?

误删文件还原可以分为两种情况

一种是删除以后在进程存在删除信息

一种是删除以后进程都找不到,只有借助于工具还原。

今天只分析文件被删除后,相关进程还存在的情况

这种一般是有活动的进程存在持续标准输入或输出,到时文件被删除后,进程PID依旧存在。这也是有些服务器删除一些文件但是磁盘不释放的原因

案例演示

创建一个文件

>vimrumenz.txt
123
//保存退出
>catrumenz.txt
123

用tail -f打开rumenz.txt文件

目的是让rumenz.txt被删除后,进程依然存在

>tail-frumenz.txt

新开一个终端删除rumenz.txt

>rm-frumenz.txt

找到占用rumenz.txt的进程

lsof查看删除的文件进程是否还存在。

如没有安装请自行yum install lsof或者apt-get install lsof

>lsof|grepdelete|greprumenz
tail10222root3rREG253,1470911074/root/test/rumenz.txt(deleted)

进程ID是10222,从上面可以看出,当前文件状态为已删除(deleted)

恢复文件

/proc/10222/fd:进程操作的文件描述符目录

>cd/proc/10222/fd
>ls-al
dr-x------2rootroot0May1121:41.
dr-xr-xr-x9rootroot0May1121:41..
lrwx------1rootroot64May1121:410->/dev/pts/1
lrwx------1rootroot64May1121:411->/dev/pts/1
lrwx------1rootroot64May1121:412->/dev/pts/1
lr-x------1rootroot64May1121:413->/root/test/rumenz.txt(deleted)
lr-x------1rootroot64May1121:414->anon_inode:inotify

开始恢复文件

>cp3/root/test/rumenz.txt
>cat/root/test/rumenz.txt
123

能恢复的根本原因

当程序运行时,操作系统会专门开辟一块内存区域,提供给当前进程使用,对于依赖的文件,操作系统会发放一个文件描述符,以便读写文件,当我们执行rm -f删除文件时,其实只是删除了文件的目录索引节点,对于文件系统不可见,但是对于打开它的进程依然可见,即仍然可以使用先前发放的文件描述符读写文件,正是利用这样的原理,所以我们可以使用I/O重定向的方式来恢复文件。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11373

    浏览量

    211287
  • 服务器
    +关注

    关注

    12

    文章

    9425

    浏览量

    86488
  • 软件
    +关注

    关注

    69

    文章

    5063

    浏览量

    88443
  • 磁盘
    +关注

    关注

    1

    文章

    382

    浏览量

    25365
  • 文件
    +关注

    关注

    1

    文章

    573

    浏览量

    24927

原文标题:Linux手误rm可能不需要跑路

文章出处:【微信号:良许Linux,微信公众号:良许Linux】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    怎么恢复U盘误删的文档word,excel文件

    了,需要重新找回来的话,需要注意下,不要往被误删文件的U盘存入任何新的文件,避免丢失的文件被覆盖,从而无法恢复。怎么
    发表于 06-06 15:41

    Linux文件系统被误删档怎么恢复

    作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在档节点中作删除标记,并不真正清除文件内容,但是其它用户和一些有写盘动作的进程会很快覆盖这
    发表于 10-16 07:22

    负偏压温度不稳定性的恢复电路和恢复方法

    本文介绍了负偏压温度不稳定性的恢复电路和恢复方法
    发表于 05-07 06:32

    误删文件恢复工具FinalData_3.0.8.1201_XiaZaiBa

    电子发烧友网站提供《误删文件恢复工具FinalData_3.0.8.1201_XiaZaiBa.exe》资料免费下载
    发表于 10-11 23:43 13次下载

    多线程的并行实例恢复方法

    针对数据库实例恢复串行化执行效率低的问题,以神通数据库为基础提出一种基于多线程的并行实例恢复方法。首先,在数据库原有实例恢复模型基础上,增加构建脏页表和脏页预取两个步骤,得到改进的实
    发表于 12-20 16:35 0次下载
    多线程的并行实例<b class='flag-5'>恢复方法</b>

    苹果手机照片误删该如何恢复

    盾苹果恢复大师,确保安装成功,然后将电脑和手机用手机数据线给连接起来;一定要将电脑和手机连接成功,连接成功,点击“从iTunes备份文件恢复”,确定是自己苹果手机的设备消息
    发表于 07-30 18:56 972次阅读

    安卓手机图片误删恢复方法

    许多安卓手机在使用一段时间就会卡顿,需要清理垃圾减少手机卡住状态,万一手抖在清理垃圾的时候点错成清理图片,造成手机图片误删怎么恢复?想必还有很多网友不清楚手机图片误删怎么恢复,在这里小
    发表于 01-26 11:00 3107次阅读
    安卓手机图片<b class='flag-5'>误删</b><b class='flag-5'>恢复方法</b>

    数据恢复方法有哪些

    本视频主要详细介绍了数据恢复方法有哪些,分别是硬盘数据恢复、硬盘物理故障、U盘数据恢复、Unix数据恢复
    的头像 发表于 02-23 11:28 8294次阅读

    Linux误删文件恢复操作

    因此,使用rm命令删除文件的时候,一定要小心;重要的数据一定要有备份;并且恢复删除的数据前,删除文件的目录内不能往进存放新东西,否则覆盖掉的信息无法找回。
    的头像 发表于 12-11 16:19 1652次阅读
    <b class='flag-5'>Linux</b>中<b class='flag-5'>误删</b><b class='flag-5'>文件</b>的<b class='flag-5'>恢复</b>操作

    【服务器数据恢复LINUX误删除、误格式化怎么恢复数据?

    Linux误删除及误格式化的数据恢复方案针对的文件系统。
    的头像 发表于 11-23 11:34 2098次阅读

    服务器数据恢复-LINUX误删除/格式化的数据恢复方

    服务器数据恢复环境: 基于EXT2/EXT3/EXT4/Reiserfs/Xfs文件系统的Linux操作系统。 服务器故障: LINUX操作系统下
    的头像 发表于 09-15 15:29 1067次阅读

    小米电脑数据恢复的常用方法、工具和步骤

    、工具和步骤。 一、 数据恢复方法: 垃圾箱恢复:当我们删除文件时,它们通常被送往电脑的垃圾箱,我们可以在垃圾箱中找回已删除的文件。因此,在数据丢失
    的头像 发表于 01-25 11:10 2539次阅读

    Oracle数据恢复—Oracle删除数据不用怕!这些数据恢复方法了解一下

    相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程
    的头像 发表于 07-19 16:40 627次阅读

    服务器数据恢复—EXT3文件系统下误删除数据的恢复案例

    服务器数据恢复环境: 邮件服务器中有一组由8块盘组成的RAID5阵列, 上层是Linux操作系统+EXT3文件系统。 服务器故障: 由于误删除导致
    的头像 发表于 10-23 15:11 264次阅读
    服务器数据<b class='flag-5'>恢复</b>—EXT3<b class='flag-5'>文件</b>系统下<b class='flag-5'>误删</b>除数据的<b class='flag-5'>恢复</b>案例

    使用lsof实现对linux文件误删恢复练习

    本文记录使用lsof实现对linux文件误删恢复练习。题目如下: 1.确保当前nginx进程运行中 2.删除日志文件,rm -f /va
    的头像 发表于 11-24 11:14 353次阅读
    使用lsof实现对<b class='flag-5'>linux</b><b class='flag-5'>文件</b>的<b class='flag-5'>误删</b>除<b class='flag-5'>恢复</b>练习