2012-07-08 3150 views
3

我这样做是在命令行(Ubuntu的12.04)如何在Linux中恢复被另一个文件覆盖的文件?

MV some_arbit_file上required_file

有没有什么办法可以恢复required_file。我已经做了很多工作。我通常备份文件。但是,我忘了这一次。将感谢任何帮助。

谢谢。

+1

您可以通过superuser.com或Ubuntu堆栈交换 – Piku 2012-07-08 08:24:37

+0

得到更好的响应。谢谢。我要问在superuser.com – Rakesh 2012-07-08 08:45:34

回答

0

看一看这个ext3 recovery页面。

因为这很难,所以我试着主动地在每个目录中使用git。这样,当我犯了一个错误,我可以git checkout旧的文件回来。

+0

谢谢。我看到我的文件系统是ext4。 – Rakesh 2012-07-08 08:41:44

1

您可以尝试使用testdisk包中的photorec。它在你删除文件时起作用,但我不知道是否覆盖它会被视为删除。

未来,我会建议你使用像Dropbox这样的服务来处理所有重要的文件。它允许你恢复每个文件的任何版本。

+0

我不认为Dropbox会是一个合适的备份工具,您将被迫决定哪些文件足够重要以备份,或为更多存储空间支付大量资金。最好是使用Rsnapshot.org之类的软件,然后购买一个备份硬盘,然后每小时运行一次cron作业来维护这一切。 – Piku 2012-07-08 08:53:06

+0

@Piku,当然你不能储存所有东西。但我有13GB(免费),我发现“重要”文件(编程项目,自编软件包,大学等)只需要3.5GB,我认为同样的解决方案适合很多其他人。当然,我有整个系统的备份(大约160GB)。 – Zagorax 2012-07-08 09:00:08

0

你不能“撤销”你的命令。也许你可以找到一些恢复工具,将帮助你...

顺便下次,为了避免这种麻烦,我建议你使用-i选项。它会告诉你是否要覆盖文件。

可以在~/.bashrc创建别名:

alias mv="mv -i" 
#you can also add aliases to cp and rm 
alias cp="cp -i" 
alias rm="rm -i" 
+0

尝试在一个包含数千个文件的大型深度嵌套目录结构中,这可能会变得不方便。 – Piku 2012-07-08 08:56:08

2

为了防止这种问题你需要有一个备份系统的未来。如果此备份系统执行某种形式的版本控制,并且不需要您为维护而做出任何努力,则会更好。你不想考虑哪些文件需要备份,它应该是“所有的,甚至是/ tmp的内容,至少每小时”

使用git/svn或其他文件版本控制系统是不是一个坏主意,但是如果忘记将新文件添加到回购站会发生什么?如果回购本身被删除会发生什么?当您尝试将整个音乐收藏集放入其中时,或想要存储特殊的unix文件(如管道和符号链接)时会发生什么?我也发现git repos疯狂易腐败,特别是如果我手动删除或移动它们。

一个更强大的系统是首先购买一个适当大小的新硬盘 - 一到两兆兆字节就足够了。指定您的备份驱动器。然后得到像Rsnapshot这样的东西,并使其工作。然后,您将拥有版本控制的备份,这些备份可以使用标准文件工具从一台从CD启动的半破机器中恢复,而在启动驱动器发生灾难性故障(网络无法启动)后网络无法启动。

在Rsnapshot和Apple的TimeMachine(其工作方式非常类似)之间,我已经从几个SSD故障中恢复过来,硬盘崩溃和一个电源切断,这一切都使我的音乐收藏失去了一半,直到一周后我才发现。