Ubuntu中恢复文件的实用步骤
术语澄清与总体思路
- 你提到的“cop launcher”并非常见的数据恢复工具名,更可能是“command-line(命令行)”的误写,或指某个具体应用的启动器。无论何种情况,文件恢复的思路基本一致:优先检查回收站/Trash,若已被清空或不是通过文件管理器删除,则尽快停止对原分区写入,再根据文件系统选择合适工具(如extundelete、TestDisk/PhotoRec)进行恢复;若有备份(如 Deja Dup、Timeshift),直接从备份还原最稳妥。
快速路径 回收站恢复
- 图形界面:打开文件管理器(如 Nautilus),在左侧点击回收站,右键目标文件选择恢复,文件将回到原位置。
- 命令行:回收站文件通常位于用户目录的隐藏路径,可先查看再移动回原处:
- 查看:ls -a ~/.local/share/Trash/files
- 恢复:mv ~/.local/share/Trash/files/<文件名> <原目录或目标目录>
- 注意:回收站中的内容可能被系统定期清理,应尽快操作。
命令行场景 进程仍占用已删文件时的恢复
- 适用:文件被删除,但仍有进程保持该文件打开(常见于日志、正在写入的进程)。
- 步骤:
- 查找被删但仍被占用的文件与进程:lsof | grep <关键字或路径>
- 从进程的文件描述符复制回文件(假设 PID 为 12345,FD 为 1):
- cp /proc/12345/fd/1 /path/to/restore/<文件名>
- 说明:此法仅对“已删除但进程仍打开”的文件有效,且需要root权限查看相关进程信息。
ext4 分区场景 使用 extundelete 恢复
- 适用:分区为 ext3/ext4,且删除后未大量写入(降低被覆盖风险)。
- 准备:
- 确认分区:df -Th | grep ext4(假设为 /dev/sda1)
- 尽量卸载目标分区:umount /dev/sda1;若提示忙,可用 fuser -m -v -i -k /path 结束占用后再卸载;系统盘无法卸载时,可进入Live USB环境操作。
- 安装与恢复示例:
- 安装:sudo apt-get install extundelete
- 按文件恢复:sudo extundelete /dev/sda1 --restore-file /home/user/important.doc
- 按目录恢复:sudo extundelete /dev/sda1 --restore-directory <目录名>
- 恢复全部:sudo extundelete /dev/sda1 --restore-all
- 查看可恢复项:sudo extundelete /dev/sda1 --inode 2(根目录 inode 通常为 2)
- 结果:恢复的文件会生成在当前工作目录的 RECOVERED_FILES/ 中。
跨文件系统或深度扫描 使用 TestDisk PhotoRec
- 适用:ext4 以外的文件系统、严重损坏或 extundelete 无效时;也可用于找回大量已删除文件。
- 安装:sudo apt-get install testdisk
- 使用 PhotoRec(文件雕刻,按类型恢复,不依赖文件系统结构):
- 启动:sudo photorec
- 选择磁盘与分区 → 选择分区类型(如 Intel/PC)→ 勾选需要的文件类型 → 指定恢复保存路径(务必在另一块磁盘/分区)→ 开始扫描与恢复。
- 说明:PhotoRec 可能恢复大量碎片文件,文件名与目录结构不一定完整,需后续人工筛选。
成功率与注意事项
- 立刻行动并停止写入原分区(下载、安装软件、解压、缓存写入等都会增加覆盖风险);必要时对原分区做只读挂载或使用 Live USB 操作。
- 优先检查备份(如 Deja Dup、Timeshift),从备份还原最快速且可靠。
- 恢复文件请保存到不同磁盘/分区,避免二次覆盖。
- 恢复后务必校验完整性(大小、哈希、能否打开),重要数据建议再做一份备份。