温馨提示×

怎么恢复linux误删文件

小樊
34
2026-10-28 10:21:52
栏目: 智能运维

在 Linux 下误删文件(通常是 rm 删除)后,能否恢复取决于很多因素。下面按「紧急处理 → 恢复方法 → 预防」给你一个清晰指南。


一、误删后第一件事(非常重要)

立刻停止对该磁盘/分区的写入操作!

  • 不要新建、修改、下载文件
  • 不要继续在该分区运行程序
  • 如果是服务器,尽量:
    # 如果是可卸载的分区
    umount /mount/point
    
    或只读挂载:
    mount -o remount,ro /mount/point
    

删除只是“标记空间可用”,数据还在,但会被新数据覆盖。


二、常见恢复方法(按文件系统)

✅ 1. ext3 / ext4(最常见)

工具:extundelete

# 安装
yum install extundelete
# 或
apt install extundelete

# 恢复整个分区
extundelete /dev/sda1 --restore-all

# 恢复指定文件
extundelete /dev/sda1 --restore-file /home/user/test.txt

恢复文件会在当前目录生成:

RECOVERED_FILES/

⚠️ 前提:

  • 文件系统未严重写入
  • 删除时间不长

✅ 2. ext4 也可尝试 testdisk

apt install testdisk
testdisk
  • 图形化菜单
  • 可恢复分区、文件
  • 对误删、误格式化有效

✅ 3. xfs 文件系统

# xfs 不直接支持 undelete
# 可尝试:
xfs_repair

❗ xfs 基本无法恢复 rm 删除文件,只能靠备份。


✅ 4. 通用工具:photorec(不挑文件系统)

apt install testdisk
photorec
  • 按文件类型恢复(图片、文档、压缩包)
  • 不支持原文件名和目录结构
  • 适合重要数据抢救

三、如果有备份(最稳妥)

  • rsync
  • tar
  • cpio
  • 云备份 / 快照(LVM、ZFS、Btrfs)
rsync -av backup/ /data/

四、不能恢复的情况

❌ 已被新数据覆盖
❌ 使用 shred / dd 擦除
❌ xfs + rm
❌ SSD 已 TRIM


五、以后怎么防止误删?

✅ 1. 给 rm 加保险

alias rm='rm -i'

✅ 2. 用“回收站”

apt install trash-cli
trash-put file

✅ 3. 定时备份

crontab -e
0 3 * * * rsync -a /data /backup

六、你可以告诉我

如果你愿意,我可以更精准帮你:

  1. 文件系统类型(df -T)
  2. 删除方式(rm / rm -rf)
  3. 是否还在写入
  4. 是否有备份

我可以直接给你可执行的恢复命令。

0 踩