Linux回收站文件丢失怎么找
小樊
32
2025-12-27 01:46:11
Linux回收站文件丢失的定位与恢复
一 先快速定位回收站位置
- 图形界面(GNOME/KDE/XFCE 等)的回收站内容位于用户主目录的隐藏目录:~/.local/share/Trash/,其下常见子目录为:
- files/:存放被删除的文件本体(保留原始文件名)。
- info/:存放元数据(如 .trashinfo,包含原始路径与删除时间)。
- 命令行查看方式:
- 直接列目录:ls -al ~/.local/share/Trash/files ~/.local/share/Trash/info
- 使用 trash-cli(遵循 FreeDesktop 标准):trash-list(查看回收站清单)。
二 回收站未清空时的恢复方法
- 图形界面恢复:打开文件管理器中的“回收站”,右键目标文件选择**“还原”,文件将回到其原始路径**。
- 命令行恢复(trash-cli):
- 交互式恢复:运行 trash-restore,按提示输入对应序号恢复。
- 指定文件恢复:trash-restore <文件名>。
- 手动恢复(底层路径):
- 查看:ls ~/.local/share/Trash/files
- 恢复:mv ~/.local/share/Trash/files/<文件名> <目标路径>
- 提示:info/ 下的同名 .trashinfo 可用于核对原始路径与时间。
三 回收站已清空或 rm 直接删除的恢复方法
- 立刻减少对目标分区的写入(避免覆盖),必要时将分区以只读方式挂载:mount -o ro /dev/sdX /mnt/recover。
- 使用文件系统级恢复工具(适用于 ext3/ext4):
- 安装:sudo apt install extundelete(Debian/Ubuntu),或 sudo yum install extundelete(CentOS/RHEL)。
- 恢复示例:
- 恢复单个文件:sudo extundelete /dev/sdXY --restore-file /path/to/deleted_file
- 恢复整个目录:sudo extundelete /dev/sdXY --restore-directory /path/to/dir
- 恢复全部可恢复文件:sudo extundelete /dev/sdXY --restore-all
- 跨文件系统或图形化选择式恢复可用 TestDisk/PhotoRec:
- 安装:sudo apt install testdisk
- 运行:sudo testdisk,按向导选择磁盘与分区,使用 Advanced 模式或 PhotoRec 按文件类型恢复。
四 常见排查与预防要点
- 多用户/多桌面排查:每个用户都有独立的回收站目录(位于各自的 ~/.local/share/Trash/),请切换到对应用户检查。
- 命令行删除未进回收站:使用 rm 或脚本直接删除的文件不会进入 Trash;这类情况请直接跳到第三节的文件系统级恢复。
- 预防与替代方案:
- 使用 trash-cli 替代 rm(trash-put/trash-list/trash-restore/trash-empty),降低误删风险。
- 为 rm 设置安全策略:如 safe-rm 或别名 alias rm=‘rm -i’,并定期做 rsync/Timeshift 等备份。