温馨提示×

Linux回收站如何恢复被覆盖的文件

小樊
64
2025-09-15 13:51:04
栏目: 智能运维

Linux回收站中文件若已被覆盖,恢复难度较大,可尝试以下方法(成功率取决于覆盖程度,建议立即停止写入新数据):

一、回收站未清空时(未真正覆盖)

  • 图形界面:打开文件管理器(如GNOME/KDE回收站),找到文件右键选择“还原”。
  • 命令行
    • 使用trash-restore(需先安装trash-cli):
      trash-restore <文件名或路径>(恢复单个文件)
      trash-restore -r(恢复所有文件)。

二、回收站已清空或文件被覆盖

1. 针对ext2/ext3/ext4文件系统

  • extundelete
    1. 安装:sudo apt install extundelete(Debian/Ubuntu)或sudo yum install extundelete(CentOS/RHEL)。
    2. 恢复文件:sudo extundelete /dev/sdXN --restore-file /路径/文件名/dev/sdXN为文件所在分区,需替换为实际分区名)。
    3. 恢复所有文件:sudo extundelete /dev/sdXN --restore-all(结果保存在RECOVERED_FILES目录)。

2. 针对多文件系统(FAT/NTFS/exFAT等)

  • TestDisk + PhotoRec
    1. 安装:sudo apt install testdisk
    2. 运行photorec,选择磁盘和分区后,按文件类型扫描恢复(文件名可能丢失)。

3. 高级场景(未覆盖的临时文件)

  • lsof + debugfs(仅适用于进程未关闭的文件):
    1. 通过lsof | grep deleted查找被删除但仍被进程占用的文件。
    2. 通过/proc/<PID>/fd/<FD>路径复制文件回原位置(需知道进程ID和文件描述符)。

三、注意事项

  • 立即停止写入:删除后避免向原分区写入新数据,否则可能覆盖被删除文件。
  • 优先使用工具:推荐trash-cli替代rm命令,从源头避免误删风险。
  • 专业恢复:若数据重要且自行失败,建议联系专业数据恢复服务。

提示:Linux删除文件后是否可恢复取决于是否被覆盖,而非是否进入“回收站”。定期备份是避免数据丢失的最佳方案。

0