温馨提示×

CentOS回收站文件能还原吗

小樊
49
2025-12-23 13:07:32
栏目: 智能运维

能否还原取决于删除方式与是否清空

  • CentOS的桌面环境(如GNOME)中,删除文件通常会先进入用户主目录的回收站目录:~/.local/share/Trash/files。只要未清空回收站,可直接在图形界面“回收站”中还原,或用命令行工具trash-cli恢复。若已清空回收站,或文件是被rm直接删除,则需借助文件系统级恢复工具(如extundelete),且成功率取决于是否被新写入覆盖。

未清空时的还原方法

  • 图形界面:打开文件管理器(如Nautilus),进入“回收站/已删除文件”,选中目标文件或目录,右键选择还原,系统会恢复到原路径。
  • 命令行工具 trash-cli(推荐):
    • 安装:sudo yum install trash-cli(或 dnf install trash-cli)
    • 查看:trash-list
    • 交互还原:trash-restore(按提示选择条目)
    • 批量还原:trash-restore -r(谨慎)
    • 清空回收站:trash-empty(谨慎)
  • 手动复制:ls ~/.local/share/Trash/files 找到目标文件,cp 到原目录或指定目录。以上方法适用于回收站未被清空的情况。

已清空或 rm 删除后的恢复思路

  • 立即停止对目标分区的写入(下载、解压、缓存、日志等),并优先将恢复结果保存到其他磁盘/分区,避免覆盖源数据。
  • 文件系统级工具(ext4 场景常用):
    • 安装:sudo yum install e2fsprogs* gcc gcc-c++
    • 恢复示例(按实际分区调整,如 /dev/sdb1):
      • 扫描:/usr/local/extundelete/bin/extundelete /dev/sdb1 --inode 2
      • 单文件:/usr/local/extundelete/bin/extundelete /dev/sdb1 --restore-file 路径/文件名
      • 单目录:/usr/local/extundelete/bin/extundelete /dev/sdb1 --restore-directory 路径/目录名
      • 全部:/usr/local/extundelete/bin/extundelete /dev/sdb1 --restore-all
    • 恢复的文件默认生成在当前工作目录的 RECOVERED_FILES/ 中。
  • 其他工具:如TestDisk(支持多分区类型),sudo yum install testdisk,按向导扫描、预览并复制所需文件到其他安全位置。
  • 重要提示:文件被删除后若磁盘空间被重新分配,恢复成功率会显著下降,操作越早越好。

预防与最佳实践

  • 为命令行添加“回收站”保护:自定义脚本将删除文件移至**~/.local/share/Trash/files或自建目录,并为文件加时间戳防重名;提供列表、还原、清空等别名,避免误用rm -rf**。
  • 日常做好备份(如 rsync、快照、定时备份),并定期清理回收站,降低误删与覆盖风险。

0