温馨提示×

Linux回收站如何恢复误删除的目录

小樊
33
2025-11-29 13:38:51
栏目: 智能运维

Linux 回收站恢复误删目录的实用步骤

一 图形界面回收站恢复

  • GNOME(Nautilus)KDE(Dolphin) 中,打开文件管理器,在侧边栏点击 回收站,找到目标目录,右键选择 恢复,即可回到原位置。
  • 注意:通过终端执行 rm -rf 删除的内容不会进入回收站,图形界面恢复仅适用于在文件管理器中删除的项目。

二 命令行回收站工具 Trash-Cli

  • 适用场景:你曾用命令行工具把目录移到回收站(如使用 trash-putgvfs-trash),现在需要从命令行恢复。
  • 安装与常用命令:
    • 安装:sudo apt install trash-cli(Debian/Ubuntu);sudo dnf install trash-cli(Fedora);sudo yum install trash-cli(CentOS/RHEL);sudo pacman -S trash-cli(Arch);sudo zypper in trash-cli(openSUSE)。
    • 查看回收站:运行 trash-list,可见被删目录的 原路径、删除时间 等信息。
    • 交互式恢复:运行 trash-restore,按提示输入序号选择要恢复的目录(支持恢复目录)。
    • 其他:删除回收站中的某条目用 trash-rm <条目名>;清空回收站用 trash-empty;删除超过 10 天的条目用 trash-empty 10
  • 回收站位置与规范:遵循 FreeDesktop.org 规范,回收站位于 $HOME/.local/share/Trash,包含 files(实际数据)与 info(原路径、删除时间等元数据)两个子目录。

三 终端 rm 删除后的恢复 extundelete(ext3/ext4)

  • 适用前提:目录位于 ext3/ext4 分区,且删除后尽快操作,避免新写入覆盖数据。
  • 操作步骤:
    1. 立即停止对目标分区的写入(下载、解压、编译等)。
    2. 确认分区:df -h,假设目标分区为 /dev/sda1
    3. 安装工具:sudo apt install extundelete(或 yum/dnf 对应安装)。
    4. 恢复目录:sudo extundelete /dev/sda1 --restore-directory /path/to/dir(路径为删除前的绝对路径)。
    5. 恢复结果默认在当前工作目录的 RECOVERED_FILES 中。
    6. 若不确定具体路径,可先执行全盘扫描:sudo extundelete /dev/sda1 --restore-all(谨慎,可能产生大量文件)。

四 其他恢复工具与注意事项

  • 被进程占用时的应急:若目录或其文件仍被进程打开,可用 lsof | grep deleted 查找句柄,再按输出定位并复制恢复(适用于文件,目录需逐文件处理)。
  • 跨文件系统或 ext 系列外的恢复:使用 TestDisk/PhotoRec。TestDisk 支持分区与文件恢复(含 NTFS/FAT/ext 等),PhotoRec 可按文件签名恢复多种类型文件。操作前尽量只读挂载或离线处理,避免覆盖。
  • 成功率与预防:删除时间越短、写入越少,成功率越高;重要数据请定期备份。为减少误删风险,建议使用 trash-cli 替代直接使用 rm(不修改 rm 行为的安全用法),删除前先确认路径与参数。

0