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 extundelete 或 sudo 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,成功率取决于是否被新数据覆盖,时间越短越好。
- 恢复大文件时,确保目标分区有足够的剩余空间;不要把恢复结果写回原分区。
- 对关键数据,优先寻求专业数据恢复服务,并事后做好定期备份。