it-swarm.cn

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

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

69
user3215

为此我在trash-cli中使用~/.bashrc包和以下别名

alias rm=trash

并且trash-cli包可以通过followoing命令安装:Sudo apt-get install trash-cli

您删除的文件将被移至废纸篓,您可以在nautilus trashcan中看到它们。

您始终可以使用以下方法之一访问真正的rm

command rm something
'rm' something
\rm something

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

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

63
enzotib

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

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

如果不是(如果您使用默认设置安装Ubuntu),请尝试extundelete程序。

不能保证你会恢复任何东西。

27
evgeny

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

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

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

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

13
H.-Dirk Schmitt

作为替代方案,如果你具体知道它是什么类型的文件......

Sudo apt-get install foremost

现在打开/etc/foremost.conf,你会看到一长串注释掉的行。如果您的文件类型存在,请取消注释该行(您可能还想删除不相关的行)。

如果您的文件类型不存在,请添加您自己的行。假设我想要恢复.css文件,我知道它大约40K。我可以添加这个:

css     n       40000   Theme\sName:     Plugin\sFixes

第二列是指区分大小写,第三列是指大小的上限,第四列是文件的起始方式(记得使用转义字符),最后一列是文件通常的结束方式。

使用以下命令(相应地编辑磁盘。可以使用df命令检查)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

接下来会发生的是,最重要的是创建一个名为output的文件夹,并将所有恢复的数据(在本例中)转储到该文件夹​​中。从那里你可以使用diffmeld来比较恢复的'文件',看看哪个是最新的。

6
Reuben L.

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

恢复已删除的文件非常困难。文件系统中的文件表示为B树等上的节点。使用rm删除文件时,将更新树,减少硬链接数,删除目录列表中的相应条目。如果有的话,你的文件有一个硬链接,你的文件是绝对安全的。你可以做一个file / -samefile filename。如果你还记得它的inode编号,你可以搜索文件(事实并非如此)。

另一种情况是,上述可能性均不属实。每当rm文件时,该目录上的文件条目将被删除,从而将硬链接数减少一个。如果硬链接的数量降至零,则指向inode上的文件的指针将被删除,或被标记为被删除。无论哪种方式,您的文件“仍然”驻留在硬盘上。该文件实际上仅在后续重新安装时从硬盘上擦除。此时的文件恢复非常困难,包括遍历文件系统树和表示实际磁盘块位置的inode。我听说过一种流行的工具,但从未使用它,称为extundelete。虽然没有保证,但值得一试。

成功恢复文件后,快速执行常规备份。它在Ubuntu上非常简单。

5
John Strood

很抱歉,但是从命令行中删除的文件“rm”和“rm -f”会绕过您在Gnome桌面上的“垃圾桶”。

您可能还想询问是否有任何extfs“取消删除”工具,如FAT和NTFS。 (我不知道,但如果没有,我会感到惊讶。)

2
Stéphane

使用“rm-trash”实用程序处理将它们放入垃圾箱以便以后检索并支持“rm”命令的所有选项。

Sudo add-apt-repository ppa:nateshmbhat/rm-trash
Sudo apt-get update
Sudo apt-get install rm-trash

“rm-trash”是

  • 意味着用来代替rm
  • 处理rm可以采取的所有选项
  • 处理文件名冲突与已经在垃圾箱中的文件
  • 自动处理一些权限问题
  • 如果从任何其他脚本调用rm或间接调用rm,则自动使用系统'rm'命令
  • 显示适当的错误消息,如rm中出现的错误消息
1
Natesh bhat