温馨提示×

如何恢复误删linux文件

小樊
67
2026-09-16 17:46:11
栏目: 智能运维

在 Linux 下恢复误删文件,能否成功取决于文件是否还在被占用、文件系统类型以及是否有备份。下面按「可行方案 → 操作步骤」给你一个实用指南。


一、先做的 3 件关键事(非常重要)

  1. 立即停止写入
    • 不要往删除文件所在的磁盘写任何新数据
    • 最好 umount 该分区(如果可以)
  2. 确认文件系统
    df -T 删除文件所在路径
    
  3. 确认是否被进程占用
    lsof | grep 文件名
    

二、情况 1:文件还在被进程使用(最常见、最简单)

适用场景

  • 文件被删除,但程序还在运行(如日志文件)

恢复方法

  1. 找到进程
    lsof | grep deleted
    
  2. 从 /proc 恢复
    cp /proc/<PID>/fd/<FD> /恢复路径/文件名
    

✅ 成功率:极高


三、情况 2:ext3 / ext4 文件系统(无进程占用)

工具推荐

  • extundelete
  • debugfs

使用 extundelete(推荐)

sudo apt install extundelete
sudo umount /dev/sdXn

# 恢复单个文件
sudo extundelete /dev/sdXn --restore-file /path/to/file

# 恢复目录
sudo extundelete /dev/sdXn --restore-directory /path

# 全恢复
sudo extundelete /dev/sdXn --restore-all

恢复文件会在 RECOVERED_FILES/

⚠️ 删除后越快恢复成功率越高


四、情况 3:xfs 文件系统

工具

  • xfs_undelete(第三方)
  • 或备份恢复
xfs_undelete /dev/sdXn

⚠️ xfs 原生不支持单文件恢复,成功率较低


五、情况 4:没有任何工具,紧急用 photorec

特点

  • 不依赖文件系统结构
  • 按文件类型扫描(图片、文档等)
sudo apt install testdisk
sudo photorec /dev/sdX

❌ 文件名和目录结构会丢失


六、永远最有效的方案:备份

推荐

  • rsync
  • timeshift
  • borg
  • 云备份

七、如果你愿意

你可以告诉我:

  • 文件系统(ext4 / xfs / btrfs)
  • 是否还在写入
  • 是否知道文件名
  • 是否有快照或备份

我可以给你针对性的一步一步命令。

0 踩