文档章节

手贱rm -rf /path/之后,可以这样来

NILYANG
 NILYANG
发布于 2015/10/16 23:58
字数 802
阅读 243
收藏 7
点赞 0
评论 0
How to recover files I deleted now by running rm *? [duplicate]


This question already has an answer here:
Recovering accidentally deleted files 7 answers
By mistake I ran rm * on the current directory where I created many c program files. I had been working on these since morning. Now I can't take out again the time that I spent since morning on creating the files. Please say how to recover. They aren't in recycle bin also!

ubuntu rm data-recovery
shareimprove this question
edited Feb 21 '14 at 0:33

Braiam
13.9k73778 
asked Nov 15 '13 at 8:56

Ravi
61841334
marked as duplicate by Anthon, jasonwryan, slm♦, Bernhard, rahmu Nov 15 '13 at 22:53

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

2     
Linux/Unix doesn't forgive :) – Jiri Xichtkniha Nov 15 '13 at 9:07
4     
Checkout them from the version control system you use. You use one, right? – choroba Nov 15 '13 at 9:08
2     
There are SOME ways to recover files/data. But most of them is very hard to do. Be sure you don't write any more to the disk or you are doomed completely. – Jiri Xichtkniha Nov 15 '13 at 9:12 
1     
When I did this, when I was young, it was not as bad as I thought. This is how I discovered that most of the time taken to write is in thinking. The second time around there will be less thinking, and you may even improve it. – richard Nov 15 '13 at 9:13
2     
Unmount the file system ASAP to avoid the blocks previously allocated for the deleted files from being overwritten. Assuming the underlying file system is either ext3 or ext4, you might have some luck recovering files using extundelete. – Thomas Nyman Nov 15 '13 at 9:14 
show 9 more comments
2 Answers
activeoldestvotes
up vote
13
down vote
If a running program still has the deleted file open, you can recover the file through the open file descriptor in /proc/[pid]/fd/[num]. To determine if this is the case, you can attempt the following:

$ lsof | grep "/path/to/file"
If the above gives output of the form:

progname 5383 user 22r REG 8,1 16791251 265368 /path/to/file               
take note of the PID in the second column, and the file descriptor number in the fourth column. Using this information you can recover the file by issuing the command:

$ cp /proc/5383/fd/22 /path/to/restored/file
If you're not able to find the file with lsof, you should immediately remount the file system which housed the file read-only:

$ mount -o remount,ro /dev/[partition]
or unmount the file system altogether:

$ umount /dev/[partition]
The reason for this is that as soon as the file has been unlinked, and there are no remaining hard links to the file in question, the underlying file system may free the blocks previously allocated for the deleted file, at which point the blocks may be allocated to another file and their contents overwritten. Ceasing any further writes to the file system is therefore time critical if any recovery is to be possible. If the file system is the root file system or cannot be made read-only or unmounted for some other reason, it might be necessary to shutdown the system (if possible) and continue the recovery from a live environment where you can leave the target file system read-only.

After writes to the file system have been prevented, there is no immediate hurry to attempt the actual recovery. To play it safe, you might want to make a backup of the file system to perform the actual recovery on:

$ dd bs=4M if=/dev/[partition] of=/path/to/backup
The next steps now depend on the file system type. Assuming a typical Ubuntu installation, you most likely have a ext3 or ext4 file system. In this case, you may attempt recovery using extundelete. Recovery may be attempted safely on either the backup, or the raw device, as long as it is not mounted (or it is mounted read-only). DO NOT ATTEMPT RECOVERY FROM A LIVE FILE SYSTEM. This will most likely bring the file system to an inconsistent state.

extundelete will attempt restore any files it finds to a subdirectory of the current directory named RECOVERED_FILES. Typical usage to restore all deleted files from a backup would be:

$ extundelete /path/to/backup --restore-all

   

   另外参考解决办法原文出处的样子:http://extundelete.sourceforge.net/

本文转载自:http://unix.stackexchange.com/questions/101237/how-to-recover-files-i-deleted-now-by-running-rm

共有 人打赏支持
NILYANG
粉丝 14
博文 90
码字总数 19038
作品 0
杭州
高级程序员
运维请注意:”非常危险“的Linux命令大全

导读 Linux命令是一种很有趣且有用的东西,但在你不知道会带来什么后果的时候,它又会显得非常危险。所以,在输入某些命令前,请多多检查再敲回车。 rm –rf rm –rf是删除文件夹和里面附带内...

linux小陶 ⋅ 2016/12/26 ⋅ 0

运维请注意:”非常危险“的Linux命令大全

运维请注意:”非常危险“的Linux命令大全 Linux命令是一种很有趣且有用的东西,但在你不知道会带来什么后果的时候,它又会显得非常危险。所以,在输入某些命令前,请多多检查再敲回车。 rm...

飞侠119 ⋅ 2016/12/08 ⋅ 0

9 个使用前必须再三小心的 Linux 命令

Linux shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹、文件或者路径文件夹等被删除。 在一些情况下,Linux 甚至不会询问你而直接执行命令,导致你丢失各种数据信息。 一...

oschina ⋅ 2014/11/06 ⋅ 45

Linux Shell脚本生产环境下安全地删除文件

脚本编写背景 无论是生产环境、测试环境还是开发环境,经常需要使用rm命令删除&批量一些“重要”目录下的文件。按照Linux的哲学“小即是美”(一个程序只做一件事)+“用户清楚自己做什么”(...

urey_pp ⋅ 2017/06/29 ⋅ 0

Linux下9 个使用前必须再三小心的命令

Linux下9 个使用前必须再三小心的命令 孤独求学人2016-10-144 阅读 命令linux Linux Shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹、文件或者路径文件夹等被删除。 在一...

孤独求学人 ⋅ 2016/10/14 ⋅ 0

防止文件意外删除--donotReMove

donotReMove 专治各种手贱rm -fr / Install 下载rm.sh到任意目录下,比如/opt/rm.sh,以root身份执行 mv /bin/rm /bin/shrm ln -s /opt/rm.sh /bin/rm 完事 Usage rm -fr / 大胆的去犯迷糊吧...

matrixy ⋅ 2015/05/31 ⋅ 0

为 rm -rf 做一个回收站

rm -rf 慎用 命令敲得多了,常在河边走,难免会湿鞋 昨天,一个手误,敲错了命令,把原本想要留的文件夹给rm -rf掉了 几天心血全木有了,靠,死的心都有了 经百度,google以及尝试无果,哎,...

B_ice ⋅ 2016/09/05 ⋅ 0

shell脚本的一些注意事项

sshuser@serverbash

科技探索者 ⋅ 2017/11/12 ⋅ 0

问题之MySQL5.6升5.7

问题一: 解决: 注意: 问题二:5.6升5.7,开启binlog参数无serverid,5.6可以,5.7不可以,5.7尽量用mysqld启动,用mysqldsafe启动无报错

鲸鱼新 ⋅ 2017/12/22 ⋅ 0

:>/dev/null 2>&1 的作用

shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo "123" > /home/123.txt 1 表示stdout标准输出,系...

yzbty23 ⋅ 2015/10/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 8分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 15分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 20分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 21分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 25分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 29分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 41分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部