查看已删除文件列表

Car*_*wig 2 rm deleted-files

我已经执行了rm -f *.gz大约 30 天前。有没有办法找出被删除的文件列表?

Rah*_*hul 5

您可以使用该debugfs实用程序,

debugfs 是一个简单易用的基于 RAM 的文件系统,专为调试目的而设计

首先,debugfs /dev/sda2在您的终端中运行(替换/dev/sda2为您自己的分区)。

进入调试模式后,您可以使用该命令lsdel列出与已删除文件对应的 inode。

在 linux 中删除文件时,它们只是取消链接,但它们的 inode(文件实际存在的磁盘中的地址)不会被删除

要获取这些已删除文件的路径,您可以使用debugfs -R "ncheck 320236"特定的 inode 替换数字。

Inode   Pathname
320236  /path/to/file
Run Code Online (Sandbox Code Playgroud)

从这里您还可以检查已删除文件的内容cat。(注意:如有必要,您也可以从这里恢复)。

参考这里


为了将来的预防,您使用Inotify 工具。然后您可以使用该inotifywait命令来侦听指定目录中发生的事件。

特别是如果您想查看已删除的文件和文件夹,请使用此

inotifywait -m -r -e delete directory_name
Run Code Online (Sandbox Code Playgroud)

并将此输出记录在某个文件中。

我还建议您寻找iwatch

  • `debugfs` 方法在理论上比在实践中更有效。从 inode 解析名称需要永远和一天的时间,并且在大约 30 天后仍然拥有有用信息的机会相当渺茫。如果您切换到单用户并立即运行“debugfs”,它_可能_让您恢复意外删除的重要文件。对于很久以前删除的许多文件,即使您只想要文件名,也可能不值得。`inotify` 方式非常适合记录 fs 操作,但当然您需要在删除文件之前运行它。 (3认同)
  • 抱歉,我并没有试图反驳您帖子中的任何内容,只是添加了一些有关其含义的警告。 (2认同)