在 Linux 中,并没有像 Windows 那样的“回收站”机制(除非你使用的是桌面环境,如 GNOME、KDE 等)。因此,恢复文件的方法取决于文件是如何被删除的以及当前系统状态。下面按常见情况说明:
删除的文件通常在:
~/.local/share/Trash/
结构如下:
~/.local/share/Trash/
├── files/ # 被删除的文件
└── info/ # 删除信息(原路径、时间)
✅ 恢复方法
cd ~/.local/share/Trash/files
cp 文件名 原路径
例如:
cp test.txt ~/Documents/
回收站在:
~/.local/share/Trash/
恢复方式类似。
rm 删除的文件(重点)⚠️ rm 删除后不会进回收站,直接释放 inode
sudo apt install extundelete # Ubuntu / Debian
sudo yum install extundelete # CentOS
sudo umount /dev/sdXn
或进入单用户模式 / 使用 Live CD
sudo extundelete /dev/sdXn --restore-file 路径/文件名
sudo extundelete /dev/sdXn --restore-directory 路径
sudo extundelete /dev/sdXn --restore-all
恢复文件会放在当前目录的 RECOVERED_FILES/
sudo apt install testdisk
sudo testdisk
步骤:
✅ 优点:支持 ext / NTFS / FAT
适合:
sudo photorec
⚠️ 缺点:文件名会丢失
lvconvert --merge /dev/vg/lv-snapshot
直接回滚快照即可。
✅ 发现误删后立即:
rm / cp / mvsudo apt install trash-cli
使用方式:
trash 文件
trash-restore
alias rm='rm -i'
| 场景 | 是否可恢复 | 方法 |
|---|---|---|
| 桌面环境删除 | ✅ 很简单 | Trash 目录 |
| rm 删除 | ⚠️ 有条件 | extundelete |
| 文件刚删 | ✅ 较高 | 立即卸载 |
| 已写入大量数据 | ❌ 很难 | 成功率低 |
| 有快照 | ✅ 完美 | 回滚 |
如果你愿意,可以告诉我:
ext4 / xfs / btrfs)rm / 桌面删除)我可以给你最精确的恢复方案。