CentOS回收站删除文件后如何追踪
导读:CentOS回收站删除文件后的追踪与恢复 一 先确认删除方式与回收站位置 若是通过桌面文件管理器(如 Nautilus/GNOME)删除,文件会进入用户主目录的回收站:~/.local/share/Trash/,其中包含两个子目录: f...
CentOS回收站删除文件后的追踪与恢复
一 先确认删除方式与回收站位置
- 若是通过桌面文件管理器(如 Nautilus/GNOME)删除,文件会进入用户主目录的回收站:~/.local/share/Trash/,其中包含两个子目录:
- files:存放被删除的实际文件/目录
- info:存放元数据(如 DeletionDate、Path),可用命令查看:
- 列出回收站内容:
trash-list - 查看某条记录的详细信息:
trash-info < 文件名或路径>
- 列出回收站内容:
- 若是通过命令行执行 rm 删除,文件不会进入回收站,属于直接删除,无法从回收站恢复。
- 若曾安装并使用 trash-cli,可用
trash-list --verbose查看删除时间与原始路径。
以上路径与工具行为符合 FreeDesktop.org 回收站规范。
二 回收站已被清空时的“追踪”与取证思路
- 查看系统日志,寻找删除相关的线索(是否有删除动作、涉及路径、时间等):
- 示例:
grep -i delete /var/log/messages或grep -i delete /var/log/syslog(不同发行版日志路径可能不同)。
- 示例:
- 检查是否仍有进程占用已删除文件的文件描述符(文件虽被删除,但句柄未释放):
lsof | grep deletedfind /proc/*/fd -ls 2> /dev/null | grep deletedfuser -m /path/to/mount(定位占用某挂载点的进程)
- 若文件已被进程打开,可通过
/proc/< PID> /fd/< FD>复制出尚未被覆盖的内容(示例):cp /proc/< PID> /fd/< FD> /safe/path/recovered_file
- 注意:以上只能“追踪”到删除痕迹或抢救尚未释放的数据,不能保证恢复所有已清空回收站的文件。
三 文件系统的专业恢复途径(适用于ext3/ext4)
- 立即停止对目标分区的写入,优先在只读方式或另一块磁盘上操作,避免覆盖已删除数据块。
- 使用 extundelete(适用于 ext3/ext4):
- 安装:
sudo yum install e2fsprogs* gcc gcc-c++(编译依赖) - 恢复示例:
- 扫描分区:
extundelete /dev/sdXN --inode 2 - 恢复单个文件:
extundelete /dev/sdXN --restore-file /path/to/file - 恢复整个分区:
extundelete /dev/sdXN --restore-all
- 扫描分区:
- 恢复结果默认生成在 RECOVERED_FILES/ 目录。
- 安装:
- 使用 TestDisk(支持多文件系统与分区恢复):
- 安装:
sudo yum install testdisk - 运行
testdisk,按向导选择磁盘/分区,执行 Analyse/Advanced 扫描,预览并勾选需要恢复的文件,复制到安全目录。
- 安装:
- 恢复成功率取决于是否已被新数据覆盖,建议尽快尝试。
四 预防与后续建议
- 统一用回收站工具替代 rm:安装并使用 trash-cli,常用命令:
- 放入回收站:
trash-put < 文件/目录> - 列出回收站:
trash-list - 交互式恢复:
trash-restore - 按时间清理:
trash-empty 10(清理超过 10 天的项目)
- 放入回收站:
- 若之前使用 rm,建议建立安全删除习惯(如自定义别名或包装脚本),或在关键目录启用快照/备份(如 LVM 快照、rsync、borgbackup)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS回收站删除文件后如何追踪
本文地址: https://pptw.com/jishu/761408.html
