Linux回收站如何恢复误删
导读:Linux回收站误删的恢复指南 一 先判断属于哪类删除 使用桌面文件管理器删除(如 Nautilus/GNOME、Dolphin/KDE、Thunar/XFCE)时,文件一般会进入用户级回收站目录 ~/.local/share/Trash...
Linux回收站误删的恢复指南
一 先判断属于哪类删除
- 使用桌面文件管理器删除(如 Nautilus/GNOME、Dolphin/KDE、Thunar/XFCE)时,文件一般会进入用户级回收站目录 ~/.local/share/Trash/,其结构为:files/(存放文件)、info/(存放 .trashinfo 元数据,含原路径与删除时间)、expunged/(已彻底删除)。这类情况可直接在回收站中还原或用命令行工具按元数据恢复。
- 使用终端命令 rm/rm -rf 删除时,文件通常不经过回收站,而是直接从目录项移除;此时需走文件系统级恢复(如 extundelete、TestDisk/PhotoRec)或检查是否仍被进程占用(lsof)。
二 图形界面回收站的恢复步骤
- 直接恢复:打开文件管理器侧栏的回收站,右键目标文件选择恢复,或拖回原位置。适用于 GNOME/KDE/XFCE 等桌面环境。
- 命令行恢复(推荐用 trash-cli):
- 安装:sudo apt install trash-cli(Debian/Ubuntu),sudo yum install trash-cli(CentOS/RHEL)。
- 查看:trash-list(或 trash-list | grep 关键字)。
- 交互式恢复:trash-restore(按提示选择编号恢复)。
- 指定恢复:trash-restore < 路径或文件名> (部分版本支持)。
- 仅删除回收站内某文件:trash-rm < 文件名> ;清空回收站:trash-empty。
- 直接操作回收站目录(了解即可):在 ~/.local/share/Trash/ 下,files 中是被删文件,info 中的 .trashinfo 记录了 Path=原路径 与 DeletionDate=删除时间;可按 .trashinfo 的 Path 将文件从 files 移回原处。操作前建议先备份该目录。
三 命令行 rm 删除后的恢复路径
- 文件仍被进程占用:用 lsof | grep deleted 找到占用进程,记录 PID 与文件描述符(如 fd 3),通过 /proc//fd/ 复制回原路径(例如:cp /proc//fd/3 /path/recovered.file)。
- ext 系列文件系统(ext3/ext4):优先在卸载分区后使用 extundelete 恢复。示例:
- 卸载:sudo umount /dev/sdXN
- 恢复单文件:extundelete /dev/sdXN --restore-file /path/to/file
- 恢复目录:extundelete /dev/sdXN --restore-directory /path/to/dir
- 恢复全部:extundelete /dev/sdXN --restore-all(谨慎)
恢复文件默认输出到当前目录的 RECOVERED_FILES/。
- 跨文件系统或 extundelete 不适用:使用 TestDisk/PhotoRec。示例:sudo testdisk,按向导选择磁盘与分区,PhotoRec 可按文件类型扫描未分配空间并恢复。
- 重要提示:恢复前尽量避免对目标分区写入(下载、解压、缓存、日志等),以提高成功率;成功率受删除后写入量与时间影响显著。
四 预防与最佳实践
- 为 rm 配置“安全删除”别名:在 ~/.bashrc 或 ~/.zshrc 中添加 alias rm=‘trash-put’,并 source 使其生效;这样删除会进入回收站而非直接删除。
- 定期清理与容量管理:回收站只是延迟删除,仍占用磁盘;可用 trash-empty 或设置周期性清理脚本。
- 建立可靠备份:如 rsync、borgbackup 等,定期将关键目录备份到独立磁盘/云端,降低数据丢失风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux回收站如何恢复误删
本文地址: https://pptw.com/jishu/773607.html
