![意外使用命令“cp”删除了我的项目中非常重要的文件](https://linux22.com/image/911975/%E6%84%8F%E5%A4%96%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E2%80%9Ccp%E2%80%9D%E5%88%A0%E9%99%A4%E4%BA%86%E6%88%91%E7%9A%84%E9%A1%B9%E7%9B%AE%E4%B8%AD%E9%9D%9E%E5%B8%B8%E9%87%8D%E8%A6%81%E7%9A%84%E6%96%87%E4%BB%B6.png)
长话短说。本质上这就是问题所在。
我有一些项目文件(new.cc
),我已经处理了很长时间了。两个月前(old.cc
)我为这些文件创建了一个备份,我所做的基本上就是> cp old.cc new.cc
。我丢失了过去两个月所做的所有更改。
有什么方法可以恢复这些文件吗?如能得到任何帮助,我将不胜感激。
答案1
简而言之,遗憾的是,除非您在其他地方仍有副本,否则无法恢复文件的较新版本。您的复制命令已用旧版本覆盖了新版本。
copy 命令将文件从源(old.cc
在您的示例中)复制到目标(new.cc
在您的示例中)。如果目标中存在同名文件(在您的示例中为较新的版本),则它们将被覆盖。默认情况下,cp
除非您提供(--interactive)选项,否则该命令不会询问您是否要覆盖文件-i
,例如 `cp -i 。
错误在于您交换了源和目标。您实际上想要执行cp new.cc old.cc
(“将新内容复制到旧内容”),而不是cp old.cc new.cc
。
数据恢复- 如上所述这里,有多种方法可以恢复已删除的信息。事实上,由于cp
ext 格式的文件系统的工作方式,复制操作不会在磁盘上物理覆盖您的信息。这意味着新版本的位和字节可能仍在硬盘上的某个位置。但是,如果您尝试自己做,将这些字节恢复到具有随机名称的文件中将是一个巨大的挑战,然后手动检查所有可能数千个重建的文件以确定每个文件是否仍然可用以及它代表什么。如果您将其交给专业的数据恢复服务,将花费很多。