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

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

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

 alias rm=trash 

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

您始终可以使用以下方法之一访问实际rm

 command rm something 'rm' something \rm something 

还有命令可以从终端, trash-listrestore-trash (或trash-restore )访问trash-emptytrash-empty从包垃圾箱cli中安装(请参阅他们的手册页)。

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

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

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

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

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

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

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

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

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

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

 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来比较恢复的’文件’,看看哪个是最新的。

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

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

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

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

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

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

你可以试试这个脚本。 很好地工作,意味着用于rm的地方

https://github.com/nateshmbhat/safe-rm

特征 :

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