首页主机资讯Linux如何查找丢失的文件

Linux如何查找丢失的文件

时间2025-12-13 01:38:03发布访客分类主机资讯浏览1431
导读:Linux查找丢失文件的实用步骤 一 先判断属于哪类丢失 文件被移动到回收站:部分桌面环境(如GNOME)自带回收站,可在文件管理器的回收站中直接还原。命令行删除(如rm)通常不走回收站。若你曾配置过“回收站脚本/别名”,可到其目录(如*...

Linux查找丢失文件的实用步骤

一 先判断属于哪类丢失

  • 文件被移动到回收站:部分桌面环境(如GNOME)自带回收站,可在文件管理器的回收站中直接还原。命令行删除(如rm)通常不走回收站。若你曾配置过“回收站脚本/别名”,可到其目录(如**~/.trash**)查找。
  • 文件被删除但仍被进程占用:进程未关闭文件描述符时,文件仍存在于磁盘,可用lsof定位并复制恢复。
  • 文件被真正删除且未被覆盖:需要按文件系统类型选择恢复工具(如extundelete、TestDisk、PhotoRec)进行扫描恢复。

二 快速定位仍存在的文件

  • 全盘按名称查找(区分大小写):sudo find / -name "filename" 2> /dev/null
  • 忽略大小写:sudo find / -iname "filename" 2> /dev/null
  • 按通配符:sudo find / -name "*.log" 2> /dev/null
  • 按时间范围(最近7天修改):sudo find / -mtime -7 -type f 2> /dev/null
  • 按大小范围(例如大于100MB):sudo find / -size +100M -type f 2> /dev/null
  • 按内容关键字搜索(适合文本/日志):sudo grep -R "关键字" /目标目录 2> /dev/null
  • 使用locate加速(需先更新索引):sudo updatedb & & locate filename

三 文件已被删除但可能仍在被进程使用

  • 查找被删除但仍打开的文件:lsof | grep deleted
  • 输出中关注PIDFD(文件描述符),进入对应进程工作目录复制回文件:
    • 查看进程当前目录:ls -l /proc/< PID> /cwd
    • 直接复制文件描述符内容:cp /proc/< PID> /fd/< FD> /recovery/recovered_file
  • 若文件被日志进程(如rsyslog)占用,优先停止该服务再复制,避免继续写入影响恢复。

四 文件已被删除且未被覆盖的专业恢复

  • 立即保护现场
    • 卸载或只读挂载目标分区:sudo umount /dev/sdX1sudo mount -o remount,ro /dev/sdX1
    • 先做整盘镜像再恢复:sudo dd if=/dev/sdX of=/backup/disk_image.img bs=4M
  • 按文件系统选择工具
    • ext3/ext4extundelete
      • 恢复单文件:sudo extundelete /dev/sdX1 --restore-file /path/to/file
      • 恢复目录:sudo extundelete /dev/sdX1 --restore-directory /path/to/dir
      • 恢复全部可恢复项:sudo extundelete /dev/sdX1 --restore-all
    • 多文件系统/分区恢复TestDisk(支持分区与文件恢复)
      • 启动:sudo testdisk,选择磁盘 → 分区表类型 → Advanced → 浏览已删除文件 → 选择并恢复
    • 通用文件雕刻(不依赖文件系统):PhotoRec
      • 启动:sudo photorec /dev/sdX,选择分区与文件系统类型 → 选择要恢复的文件类型 → 指定输出目录 → 开始恢复
    • 其他雕刻工具:Scalpel、Foremost(按文件头尾特征恢复)
  • 重要提示:恢复文件必须写入到另一块磁盘/分区,切勿写回原分区,以免覆盖待恢复数据。

五 预防与后续建议

  • 使用回收站机制:安装trash-cli并将rm替换为trash,可用trash-restore还原;或自建脚本将删除文件移至**~/.trash**。
  • 删除前二次确认:设置别名如alias rm='rm -i',或禁用rm强制使用回收站。
  • 重要文件加锁:sudo chattr +i important_file(解除:sudo chattr -i important_file
  • 建立备份与快照:定期全量/增量备份;使用LVMBtrfs快照快速回滚。
  • 监控关键目录:inotifywait -m -r -e delete /important/dir,及时发现异常删除。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux如何查找丢失的文件
本文地址: https://pptw.com/jishu/771187.html
Linux文件加密怎样做才安全 Ubuntu Golang如何集成数据库操作

游客 回复需填写必要信息