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:
- 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),可参考下述思路创建回收站目录与别名/函数,删除时加时间戳避免同名覆盖,并提供恢复与清空命令,显著降低误删风险。