用 rm 删除的文件/目录可以恢复吗?

用 rm 删除的文件/目录可以恢复吗?

是否可以使用rm和来恢复从终端删除的文件/目录rm -r?如果文件是从图形界面删除的,则可以从垃圾中恢复,但如果文件是使用 rm 实用程序删除的,该如何恢复?

答案1

为此,我trash-cli在我的~/.bashrc

alias rm=trash

trash-cli可以使用以下命令安装该包: sudo apt-get install trash-cli

您删除的文件将被移至垃圾箱,您可以在 nautilus 垃圾箱中看到它们。

rm您始终可以使用以下方法之一来访问真实值:

command rm something
'rm' something
\rm something

还有一些命令可以从终端访问垃圾箱,,trash-listrestore-trashtrash-restore),trash-empty可以从 trash-cli 包安装(然后查看它们的手册页)。

最后要注意的是,不建议超级用户使用这样的别名,因为它会干扰系统操作。

答案2

从终端删除它会永久删除它 - 恢复非常困难,有时甚至是不可能的。

如果您的分区类型是ext3(使用 检查System->Administration->Disk Utility),那么请查看ext3undel

如果不是(如果你安装了 Ubuntu默认设置),尝试该extundelete程序。

但这并不保证您一定能恢复任何东西。

答案3

您正在寻找:删除-用于从 ext3/ext4 分区恢复已删除文件的实用程序

要找到这样的包,您可以尝试:apt-cache search undelete

要使用该实用程序,请安装:sudo apt-get install extundelete

安装后调用man extundelete并仔细研究。

答案4

用最抽象的术语来说,每当您在图形界面上删除文件时,该文件都会被“移动”到一个特殊的“缓冲区”,即名为的目录trash。您可以在home目录中找到它。从此目录中“删除”的文件将被真正删除。当您对文件~/.local/share/Trash/使用时,就会发生这种真正的删除。rm

恢复已删除的文件极其困难。文件系统中的文件以 B 树或类似结构上的节点表示。使用 删除文件时rm,树会更新,硬链接数量会减少,目录列表中的相应条目会被删除。如果您的文件有硬链接,则您的文件绝对安全。您可以执行file / -samefile filename。如果您还记得文件的 inode 编号(这种情况很少见),则可以搜索该文件。

另一种情况是上述所有可能性都不成立。每当您删除rm一个文件时,目录中的文件条目都会被删除,从而将硬链接数减少一个。如果硬链接数降至零,则指向 inode 上文件的指针将被删除,或标记为已删除。无论哪种情况,您的文件“仍然”驻留在硬盘上。只有在随后重新安装时,文件才会从硬盘上真正删除。在这种情况下恢复文件非常困难,需要遍历文件系统树和代表实际磁盘块位置的 inode。我听说过一种流行的工具,但从未使用过,称为extundelete。虽然没有保证,但值得一试。

无论你是否成功恢复了文件,都要尽快进行定期备份。在 Ubuntu 上这非常简单。

相关内容