温馨提示×

CentOS回收站删除后如何恢复

小樊
39
2026-01-08 02:54:42
栏目: 智能运维

CentOS回收站清空后的恢复指南

一、先判断属于哪类删除

  • 若此前使用过桌面环境(如 GNOME/KDE)的“回收站”,文件通常位于用户主目录的隐藏目录 ~/.local/share/Trash/files。即便“清空回收站”,很多桌面实现还会在 ~/.local/share/Trash/info 保留删除日志(含原路径与删除时间),可据此定位并手动还原。若此目录已被清空或从未使用过图形界面,则按“永久删除”处理,进入下文的文件恢复流程。

二、有日志时的手动恢复步骤

  • 1)查看可能的日志与文件残留:
    • ls -la ~/.local/share/Trash/info
    • ls -la ~/.local/share/Trash/files
  • 2)从 info 中确认原路径(例如日志行包含原路径),再回到 files 目录将目标文件复制回原处:
    • cp -p ~/.local/share/Trash/files/<文件名> <原路径>/
  • 3)若日志缺失或文件已被清掉,请直接跳到第三部分进行磁盘级恢复。

三、无日志或已永久删除时的恢复方法

  • 适用前提:文件删除后未向所在分区写入大量新数据(写入越多,覆盖后越难恢复)。
  • 工具选择:ext4 文件系统常用 extundelete;xfs 文件系统可用 xfs_undelete(需较新版本 xfsprogs)。以下以 ext4 为例(extundelete 在 EPEL 源中通常可用):
    • 1)安装工具(最小化系统可能需先启用 EPEL):
      • sudo yum install -y epel-release
      • sudo yum install -y extundelete
    • 2)立刻停止对目标分区的写入(卸载或切换到只读),例如目标分区为 /dev/sdX1
      • umount /dev/sdX1
    • 3)扫描并恢复:
      • 查看可恢复文件与 inode:extundelete /dev/sdX1 --inode 2
      • 按文件名恢复:extundelete /dev/sdX1 --restore-file /path/to/your/file
      • 恢复全部可恢复文件:extundelete /dev/sdX1 --restore-all
      • 恢复结果默认生成在当前工作目录的 RECOVERED_FILES/ 中。
    • 4)恢复完成后重新挂载为可写:
      • mount -o remount,rw /dev/sdX1
  • 重要提示:
    • 恢复文件务必保存到其他分区/外置盘,避免写回源分区造成覆盖。
    • 若不熟悉命令行或工具安装,建议寻求专业数据恢复服务,减少二次损伤风险。

四、后续预防与替代方案

  • 使用 trash-cli 规范管理删除动作(便于列出、恢复与定时清空):
    • 安装:sudo yum install -y trash-cli
    • 常用:trash-list、trash-restore、trash-empty
  • 为 root 或生产环境设置“安全 rm”(将删除先移到自定义回收站而非直接 rm -rf),可参考下述思路创建回收站目录与别名/函数,删除时加时间戳避免同名覆盖,并提供恢复与清空命令,显著降低误删风险。

0