在 Linux 下删除文件后能否恢复,取决于文件是如何被删除的、文件系统类型,以及是否有新数据写入覆盖。下面按常见情况说明:
umount /dev/sdXn
rm 删除?rm,但进程还在使用(最常见、最容易恢复)例如:
rm /var/log/app.log
但程序还在写这个文件。
lsof | grep deleted
或
lsof /path/to/file
/proc 恢复:cp /proc/<PID>/fd/<FD> /恢复路径/文件名
✅ 成功率:极高
rm,但没被覆盖(ext3 / ext4 / xfs)sudo apt install extundelete
sudo extundelete /dev/sdXn --restore-all
恢复文件在:
RECOVERED_FILES/
sudo apt install testdisk
sudo testdisk
步骤:
sudo photorec /dev/sdX
✅ 适合:
✅ 用 testdisk
❌ 基本无法恢复
| 文件系统 | 推荐工具 |
|---|---|
| ext3/ext4 | extundelete |
| xfs | xfs_undelete(有限) |
| btrfs | 快照恢复 |
| NTFS | testdisk / ntfsundelete |
alias rm='rm -i'rsync 备份trash-cli你可以直接告诉我:
我用了什么命令删除的?什么系统?硬盘还是 U 盘?