我使用gcc -o foo.c foo的命令,给我留下了foo ....我知道骨头移动了。 我知道使用版本控制。有什么方法可以恢复.c文件?刚开始并感谢任何帮助。使用新的虚拟机并没有备份。
答案 0 :(得分:0)
不,没有办法通过"正常"恢复foo.c方法
如果你有另一个打开文件的程序,比如编辑器或调试器,你可以尝试从那里恢复源代码。但是,有些编辑喜欢在磁盘上的数据发生变化时自动重新加载,因此不确定。
此外,如果失败的风险相对较高,您可能会尝试使用旨在从格式化或损坏的硬盘驱动器中提取数据的取证工具来查找文件。 Foremost就是这样一个程序。成功的可能性取决于文件保存在何种文件系统上以及您使用了多少文件系统 - 大多数文件系统在删除文件后会立即自由覆盖文件。有人说如果你不小心删除了一个重要的文件,你应该立即关闭机器电源(不让它通过关机)来降低发生这种情况的可能性。当然,那么你需要从USB记忆棒或其他东西启动才能在硬盘上运行取证。
(我的假设gcc -o foo
实际上并没有覆盖foo
,而是创建一个新文件并删除旧文件;这几乎肯定是正确的,但是如果gcc实际打开旧文件并覆盖它,取证将无济于事。)