温馨提示×

linux怎么恢复删除文件

小樊
53
2026-09-01 15:18:30
栏目: 智能运维

在 Linux 下“恢复删除的文件”能不能成功,取决于文件是怎么删的、文件系统类型、以及删除后有没有新数据写入。下面按常见情况说明。


一、先明确几种情况

1. 用 rm 删除(最常见)

  • 文件从目录结构中移除
  • 数据本身通常还在磁盘上
  • 只要没被覆盖,有机会恢复

2. 从回收站删除(桌面环境)

  • 如 GNOME / KDE
  • 文件在 ~/.local/share/Trash
  • 可直接找回

3. 格式化 / 覆盖写入

  • 恢复难度大幅增加
  • 成功率低

二、最推荐的第一步(非常重要)

立刻停止对该磁盘写入

  • 不要新建/编辑文件
  • 不要安装软件到原盘
  • 最好只读挂载或进入 Live 系统

三、常见恢复方法


方法 1:检查回收站(最优先)

ls -la ~/.local/share/Trash/files

如果有:

mv ~/.local/share/Trash/files/文件名 ~/

方法 2:使用 extundelete(ext3 / ext4)

安装

sudo apt install extundelete

卸载分区

sudo umount /dev/sdXn

恢复全部删除文件

sudo extundelete /dev/sdXn --restore-all

恢复文件会在:

RECOVERED_FILES/

方法 3:使用 testdisk(通用,推荐)

支持:

  • ext / xfs / ntfs / fat

安装

sudo apt install testdisk

运行

sudo testdisk

步骤:

  1. 选择磁盘
  2. 选择分区表类型
  3. Analyse → Quick Search
  4. 找到分区后 List
  5. 选中文件 → Copy

对误删非常有效


方法 4:使用 photorec(按文件内容恢复)

适合:

  • 照片、文档、压缩包
  • 文件名会丢失
sudo photorec /dev/sdX

恢复目录:

recup_dir.*

方法 5:有快照(如 btrfs / LVM)

btrfs

btrfs subvolume list /
btrfs send ...

LVM

lvdisplay
lvconvert --merge

四、不能恢复的情况

❌ 文件已被新数据覆盖
❌ SSD 已执行 TRIM
❌ 删除很久且磁盘忙碌


五、以后如何防止误删

  • alias rm='rm -i'
  • 使用 trash-cli
sudo apt install trash-cli
trash 文件名
  • 定期备份(rsync / Borg / Timeshift)

如果你愿意,可以告诉我:

  • 文件系统(ext4 / xfs / btrfs)
  • 怎么删的(rm / 格式化)
  • 是否还在用这块盘

我可以给你更精确的一步一步命令

0