温馨提示×

Linux回收站能恢复大文件吗

小樊
35
2025-11-29 13:39:47
栏目: 智能运维

Linux回收站恢复大文件指南

能否恢复与前提

  • Linux上,图形桌面(如GNOME/KDE)的回收站本质是把文件移动到用户目录的隐藏目录(如:~/.local/share/Trash/files),因此只要文件仍在回收站中,不论体积多大,都可以通过图形界面“还原”或命令行工具恢复到原位置。若已从回收站清空、用命令行执行了rm、或使用了“安全删除”,则需要在文件系统层面尝试恢复。

从回收站直接恢复

  • 图形界面:打开桌面“回收站”,选中目标文件,右键选择还原,文件会回到删除前的原始路径。适用于仍在回收站中的文件。
  • 命令行(trash-cli):
    • 列出回收站内容:trash-list
    • 交互式恢复:trash-restore(按提示选择文件)
    • 批量恢复:trash-restore -r
    • 注意:恢复前不要向原分区写入新数据,避免覆盖。

回收站已被清空或命令行删除的恢复

  • 立即停止对目标分区的写入(下载、解压、缓存、日志等),并尽量将恢复结果写入其他磁盘/分区,以降低覆盖风险。
  • 按文件系统选择工具(以ext4为例):
    • extundelete(仅限ext3/ext4):
      • 安装:sudo apt-get install extundeletesudo yum install extundelete
      • 恢复单文件:extundelete /dev/sdXY --restore-file /path/to/file
      • 恢复目录:extundelete /dev/sdXY --restore-directory /path/to/dir
      • 恢复全部:extundelete /dev/sdXY --restore-all
      • 恢复结果默认在当前目录的**RECOVERED_FILES/**中
    • TestDisk/PhotoRec(多文件系统、分区/文件恢复):
      • 适用场景:分区丢失、文件系统损坏、或extundelete不适用时
      • 建议将恢复文件保存到不同分区,避免二次覆盖
  • 被进程占用但已删除的文件:
    • 查找被删除但仍被占用的文件:lsof | grep deleted
    • 根据输出由进程持有者复制或重定向输出到安全位置,完成“救回”。

成功率与注意事项

  • 回收站未清空时恢复几乎100%成功;一旦清空或执行rm,成功率取决于是否被新数据覆盖,时间越短越好。
  • 恢复大文件时,确保目标分区有足够的剩余空间;不要把恢复结果写回原分区。
  • 对关键数据,优先寻求专业数据恢复服务,并事后做好定期备份

0