转自:同事一篇文章
难免有时候会对删除的一些文件有所眷恋,或者脑子里想着别的就rm *了。避免误删文件最有效的方法还是平常养成良好的开发习惯,或者备份代码到svn上。但当遇到问题时,也不要紧张不要慌。
(1) 为了方便要下root账户;
(2) Cat /etc/fstab查看目录挂在路径以及文件系统类型:
/dev/sda3 /home ext2 defaults 0 0
(3) Ext2类型,真是太好了,马上现在工具:debugfs
svn co
备注:上面的xxx已隐藏(请自己下载debugfs)
(4) debugfs /dev/sda3; // /sda3是你要查看的设备,这种方式将进入debugfs的交互式运行模式
(5) > lsdel //查看被删除文件的inode,你会发现好慢,文件太多了;所以为了方便,将查找结果重定向到文件:
debugfs /dev/sda3 -R lsdel > /home/xxx/
(6) 好了,你会发现lsdel.tmp有很多行,第一列就是文件名,其实已经变为数字了。没关系,通过grep你删除文件的时间,可以定位你的文件所在的范围,可以减少lsdel.tmp;
(7) 一条强大的命令可以将你锁定范围的文件恢复出来了:
awk '{printf "dump <"$1"> /home/xxx/"$1"\n"}' lsdel.tmp | debugfs /dev/sda3
Ok,在xxx下面好多以数字命名的文件,每一个继续看吧,可以grep查找内容定位。