linux下误操作删除文件如何恢复

假设文件是在” /home/linux/shl/sy_linux/路径下
参考:百度知道https://zhidao.baidu.com/question/213248989.html

我要恢复的文件是:root@ubuntu:/home/linux/shl/sy_linux/pthread_test.c

linux@ubuntu:~/shl/sy_linux$ df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
/dev/sda1      ext4      40251776 22367924  15839180  59% /
udev           devtmpfs    505332        4    505328   1% /dev
tmpfs          tmpfs       205292      972    204320   1% /run
none           tmpfs         5120        0      5120   0% /run/lock
none           tmpfs       513228      200    513028   1% /run/shm
/dev/sdb1      ext4       5159552   141288   4756172   3% /home/linux/ubuntu-1
.host:/        vmhgfs   181530620 96417344  85113276  54% /mnt/hgfs

df - T 找到当前文件所在磁盘分区
运用,系统自还工具debugfs来修复 打开,刚刚被删除文件所在的分区,用ls 加-d参数显示刚刚删除文件所在的目录
在此之前先进入管理员模式: sudo su

linux@ubuntu:~/shl/sy_linux$ debugfs
debugfs 1.42 (29-Nov-2011)
debugfs:  open /dev/sdb1 
/dev/sdb1: Permission denied while opening filesystem

不然会有上述报错,显示无权限打开

linux@ubuntu:~/shl/sy_linux$ sudo su
[sudo] password for linux: 
root@ubuntu:/home/linux/shl/sy_linux# debugfs
debugfs 1.42 (29-Nov-2011)
debugfs:  open /dev/sdb1 
debugfs:  ls -d /home/linux/shl/sy_linux/
/home/linux/shl/sy_linux/: File not found by ext2_lookup 

好吧,我可能时间长了,文件以及找不到了!!!!根本没有啊!
或者是我路径找错了!!!
然后我换个地方打开 /dev/sda1

debugfs:  open /dev/sda1 
debugfs:  ls -d /home/linux/shl/sy_linux/
然后看到如下界面数据:
 2171092  (12) .    2107347  (12) ..    2136755  (20) openfile.c   
 2136636  (20) write_test.c    2140733  (16) write    2159955  (20) pid.c   
 2140780  (20) file1.txt    2140768  (16) pid    2143056  (20) file2.txt   
 2097430  (3940) a.out   <2165564> (3916) pthread_test.c~ 
//回车
//输入
debugfs:  logdump -i <2165564>
Inode 2165564 is at group 264, block 8392825, offset 3456
Journal starts at block 14, transaction 948674
No magic number at block 7828: end of journal.

debugfs:  quit
root@ubuntu:/home/linux/shl/sy_linux# dd if=/dev/sda1 of=/home/linux/shl/sy_linux/pthread_test.c bs=3456 count=1 skip=8392825
1+0 records in
1+0 records out
3456 bytes (3.5 kB) copied, 0.000610909 s, 5.7 MB/s
root@ubuntu:/home/linux/shl/sy_linux# ls
a.out      file2.txt   pid    pthread_test.c  write_test.c
file1.txt  openfile.c  pid.c  write
root@ubuntu:/home/linux/shl/sy_linux# 

上述步骤及命令可以总结如下:具体参照上列表

1:打开文件分区
debugfs: open /dev/sda1

2:查看当前文件夹下可以恢复的所有文件列表
debugfs: ls -d /home/linux/shl/sy_linux/

3:找到对应的参数带入命令
logdump -i <2165564>

4:退出debugfs,开始恢复文件
dd if=/dev/sda1 of=/home/linux/shl/sy_linux/pthread_test.c bs=3456 count=1 skip=8392825

4:查看结果
ls

  • 5
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: 对于误删除文件恢复,可以使用一些工具来进行恢复,比如说TestDisk、PhotoRec等等。这些工具可以扫描硬盘并找回被删除文件,但是需要注意的是,如果文件被覆盖或者硬盘已经受损,那么恢复的成功率会降低。 ### 回答2: 在Linux系统中,当文件被误删除时,我们有几种方法可以尝试恢复文件。 首先,我们可以使用一些命令行工具来恢复删除文件。比如使用“find”命令可以搜索整个文件系统,找到被删除文件的副本。命令如下: ``` $ find / -name "filename" ``` 这将在整个文件系统中搜索名为“filename”的文件,并显示它们的位置。然后可以将文件移动回原来的位置。 第二种方法是使用“grep”命令。它可以在磁盘上搜索二进制数据,找到被删除文件的内容并使用其内容重建文件。命令如下: ``` $ grep -a -B100 -A100 'text in the file' /dev/sda1 > recovered_file ``` 这个命令将在磁盘设备/sda1上搜索包含“file”中内容的二进制数据,并将结果保存到一个名为“recovered_file”的文件中。 第三种方法是使用专业的数据恢复工具。有许多第三方软件可以帮助我们恢复被误删除文件,例如TestDisk、PhotoRec等。这些工具通常具有更复杂的功能,可以深入扫描磁盘,寻找被删除文件的各个部分,并尝试将它们重新组装起来。 尽管使用这些方法可以恢复删除文件,但是成功率并不是百分之百,因为文件删除后,其数据可能已经被覆盖或者损坏。因此,在误删除文件后,应尽快采取措施来尝试恢复文件,以提高成功的机会。此外,为了避免类似问题的发生,我们应该定期备份重要文件,并小心操作。 ### 回答3: 在Linux系统中,当我们误删除文件时,通常可以采取以下方法进行恢复: 1. 使用回收站:某些文件管理器在删除文件时会将其移动到回收站而不是直接永久删除。可以尝试在文件管理器的回收站或垃圾桶中查找并恢复删除文件。 2. 使用undelete命令:在终端中,可以尝试使用undelete命令来恢复删除文件。通过在终端输入该命令并指定所需恢复文件路径,系统将尝试从硬盘上恢复删除文件。 3. 使用恢复工具:还可以使用一些专门的恢复工具来恢复删除文件。例如,extundelete和testdisk是两个常用的Linux文件恢复工具。这些工具可以扫描硬盘并尝试恢复删除文件。 需要注意的是,无论使用哪种方法,都应尽可能在误删除后尽早采取恢复措施。一旦新的文件被写入硬盘上原文件所在的空间,恢复工作就会变得更加困难或者不可能。因此,当发现误删除文件后,尽量避免继续使用该硬盘,以最大限度地提高文件恢复成功率。 此外,为了避免误删除文件,建议定期备份重要的文件。备份可以帮助我们恢复文件,即使出现误操作或其他问题。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值