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、快照、定时备份),并定期清理回收站,降低误删与覆盖风险。