0

0

Linux 文件恢复与误删处理技巧

冷漠man

冷漠man

发布时间:2026-02-18 12:26:34

|

767人浏览过

|

来源于php中文网

原创

误删文件后应立即停止磁盘写入以提高恢复成功率;可用lsof找回仍被进程占用的已删文件;extundelete仅适用于未启用extents/filetype特性的ext4;photorec按文件头扫描恢复,但无文件名和目录结构;推荐用trash-cli替代rm实现回收站功能。

linux 文件恢复与误删处理技巧

误删文件后第一件事不是慌,而是立刻停写磁盘

Linux 下删除文件只是解除 inode 链接,数据块本身通常还在,但只要磁盘继续写入(比如日志、缓存、新文件),就可能被覆盖。恢复成功率和「是否立即停止写入」强相关。

  • 立刻执行 sudo lsof +L1:如果文件刚被删但进程还在用,lsof 会显示 deleted 状态的条目,此时可直接从 /proc/<pid>/fd/<fd_num></fd_num></pid> 复制回来
  • 不要运行 apt upgradejournalctl --vacuum、甚至不要开新终端(bash 历史可能写入 ~/.bash_history)
  • 如果在系统盘操作,优先切到 Live USB 环境再恢复,避免原系统后台服务持续写盘

ext4 文件系统下用 extundelete 恢复已 unlink 的文件

extundelete 是目前对 ext3/ext4 最可靠的老牌工具,但它只支持未启用 extents 或禁用 filetype 特性的旧格式;现代 Ubuntu/Debian 默认开启所有特性,所以它常报 No undeletable inodes in directory

  • 确认文件系统特性:sudo dumpe2fs -h /dev/sda1 | grep -i "features",若输出含 extentsfiletypeextundelete 很可能失效
  • 真正能用的前提是:文件删除前未被 chattr +e(启用 extent 存储),且没开启日志模式(data=journal
  • 基本命令:sudo extundelete /dev/sda1 --restore-file home/user/report.txt,恢复结果默认放在 RECOVERED_FILES/ 目录

通用方案:用 photorec 按文件头恢复,不依赖文件系统结构

photorec 不读取目录或 inode,而是扫描整个块设备,靠识别常见文件魔数(如 PDF 的 %PDF、PNG 的 \x89PNG)重建文件。适合 ext4/xfs/btrfs 甚至损坏分区,但无法恢复原始文件名和目录结构。

v0.dev
v0.dev

Vercel推出的AI生成式UI工具,通过文本描述生成UI组件代码

下载
  • 必须指定原始设备路径,不能挂载后操作:sudo photorec /dev/sda1,否则会跳过已挂载分区
  • 恢复出的文件按类型编号命名(如 f0000001.png),需后续用 filexxd 手动筛查
  • 速度慢、结果杂,但对大文件(数据库、视频、压缩包)找回率明显高于基于 inode 的工具
  • 别指望它恢复小文本文件——.txt 几乎无魔数,容易漏掉或拼错

预防比恢复重要:用 trash-cli 替代 rm

Linux 默认没有回收站机制,rm 是硬删除。装 trash-cli 后,trash 命令把文件移到 ~/.local/share/Trash,保留路径信息和删除时间,还能用 trash-list 查看、trash-restore 交互式还原。

  • 安装:sudo apt install trash-cli(Debian/Ubuntu)或 pip install trash-cli
  • 建议 alias:alias rm='trash',但注意脚本里慎用——某些自动化流程依赖 rm 的退出码语义
  • trash 不处理 root 权限下的文件,sudo trash /etc/config.bak 会失败,得手动 mv 到 /root/.local/share/Trash

恢复这事,永远卡在「删完才发现没备份」和「以为能恢复结果只捞出碎片」之间。最常被忽略的是:哪怕用了 photorec,也得先用 dd 对磁盘做镜像再扫,否则边扫边写,越救越少。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

349

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

425

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

786

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

357

2025.07.23

数据库三范式
数据库三范式

数据库三范式是一种设计规范,用于规范化关系型数据库中的数据结构,它通过消除冗余数据、提高数据库性能和数据一致性,提供了一种有效的数据库设计方法。本专题提供数据库三范式相关的文章、下载和课程。

373

2023.06.29

如何删除数据库
如何删除数据库

删除数据库是指在MySQL中完全移除一个数据库及其所包含的所有数据和结构,作用包括:1、释放存储空间;2、确保数据的安全性;3、提高数据库的整体性能,加速查询和操作的执行速度。尽管删除数据库具有一些好处,但在执行任何删除操作之前,务必谨慎操作,并备份重要的数据。删除数据库将永久性地删除所有相关数据和结构,无法回滚。

2093

2023.08.14

vb怎么连接数据库
vb怎么连接数据库

在VB中,连接数据库通常使用ADO(ActiveX 数据对象)或 DAO(Data Access Objects)这两个技术来实现:1、引入ADO库;2、创建ADO连接对象;3、配置连接字符串;4、打开连接;5、执行SQL语句;6、处理查询结果;7、关闭连接即可。

355

2023.08.31

MySQL恢复数据库
MySQL恢复数据库

MySQL恢复数据库的方法有使用物理备份恢复、使用逻辑备份恢复、使用二进制日志恢复和使用数据库复制进行恢复等。本专题为大家提供MySQL数据库相关的文章、下载、课程内容,供大家免费下载体验。

259

2023.09.05

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

561

2026.02.13

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.3万人学习

Git 教程
Git 教程

共21课时 | 3.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号