Linux 中怎么恢复误删的文本文件数据

轻明姑娘_9282

轻明姑娘_9282

2026-10-31

664人浏览

原创

误删文本文件可恢复,关键在于立即停止写入、按文件系统类型选择工具:进程仍在使用时从/proc/PID/fd直接拷贝(100%保内容);ext3/ext4用extundelete按原路径恢复;XFS/Btrfs或已写入则用photorec扫描原始块;紧急无工具时可用debugfs提取inode数据。

linux 中怎么恢复误删的文本文件数据

误删文本文件后,恢复关键在于“快停写 + 对症工具 + 保留原内容”。文本文件本身不依赖复杂结构,但恢复方式高度依赖文件系统类型和删除后的操作状态。以下几种方法按优先级和适用场景展开:

进程还在用?直接从 /proc/fd 拿回来

这是最快、最稳、100%保内容的方法,前提是删除后相关进程没退出——比如日志服务、Web 服务器、编辑器后台进程仍在读写该文件。

  • 运行 lsof | grep deleted,找带“(deleted)”标记的行,记下 PID 和 FD 编号(如 3)
  • 执行 sudo cat /proc/PID/fd/FD编号 > recovered.txt,例如:
    sudo cat /proc/1234/fd/3 > config_backup.conf
  • 注意:路径必须写对,输出文件建议存到其他分区,避免覆盖原位置

ext3/ext4 文件系统?优先用 extundelete

适用于刚删不久、未大量写入、且确认是 ext3 或 ext4 分区的情况。它能按原路径、原名恢复,包括 .txt、.log、.conf 等纯文本文件。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 先查类型:df -T /path/to/deleted/file,确认 Type 是 ext4 或 ext3
  • 立即只读挂载:sudo mount -o remount,ro /dev/sdXN(根分区需进 Live USB 操作)
  • 恢复单个文本文件:sudo extundelete /dev/sdXN --restore-file "home/user/notes.txt"(路径是相对于分区根目录,不是绝对路径)
  • 恢复后文件默认在当前目录的 RECOVERED_FILES/ 下,名字带序号,可用 file RECOVERED_FILES/* 快速识别文本类

非 ext 系统(XFS/Btrfs)或已写入?用 photorec 扫描原始块

当文件系统是 XFS、Btrfs,或你已重启、写入新日志、无法卸载时,extundelete 失效,photorec 是通用兜底方案。它不认目录结构,靠识别文件头尾特征(如文本文件虽无固定头,但常含可读 ASCII 字符段)拼出内容。

  • 安装:sudo apt install testdisk(photorec 是其子命令)
  • 运行:sudo photorec /dev/sdXN,交互中选分区 → 选 “Other”(通用模式)→ 选存储位置(务必避开原分区)
  • 恢复出的文件名是自动生成的(如 f0000001.txt),可用 head -n 20 f0000001.txt 快速预览是否为你要的文本内容
  • 小技巧:若记得部分关键词(如某段报错信息),恢复后可在所有结果里用 grep -l "关键词" * 筛选

实在没工具?试试 debugfs 提取 inode 原始数据(ext 系列专属)

适合无法安装新软件、又确定是 ext 分区的紧急情况。它绕过日志,直接从 inode 读取未覆盖的数据块,但需手动定位 inode 号,且不保证文件名和编码完整。

  • 先卸载或只读挂载目标分区
  • 进入调试:sudo debugfs /dev/sdXN,输入 lsdel 查看已删 inode 列表(关注 Size 和 Deletion time 接近的)
  • 记下目标 inode(如 123456),退出后执行:
    sudo debugfs -R "dump 123456 /tmp/recovered_raw" /dev/sdXN
  • 用 file /tmp/recovered_raw 看类型,再用 iconv 或 vim -b 查看是否为可读文本

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

960

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3292

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1076

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

969

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

514

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3016

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5672

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

867

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习