Linux 编译时随机删除了我的文件我该怎么办?

Linux randomly deleted my file while compiling what do I do?

gcc -L/root/Desktop - Wall -o prog3.c -pthread -lcopy
/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.0: In function '_start': (.text+0x20): undefined reference to 'main' 
collect2: error: ld returned 1 exit status

这是我的错误代码。 prog3.c 无处可寻,到底发生了什么事,有什么办法可以找回我的文件吗??粗体是命令 I 运行 其余是结果控制台输出

您的问题在这里:-o prog3.cgcc-o option 用于告诉 gcc 它应该给它生成的可执行文件起什么名字。所以在这里,你基本上是在要求你的编译器用可执行文件替换你的 prog3.c 源文件。遗憾的是你的代码不见了...

在这种情况下您的选择的小附录:

  1. 它是 Git( 或任何其他版本控制)存储库。在这种情况下,您可以简单地从以前的提交中获取它

  2. 您的 editor/IDE 有一些备用系统。有时我需要带回我认为不需要的文件。对于这种情况,我最喜欢的文本编辑器应该已经在适当的位置创建了备份文件(例如 $XDG_DATA_HOME/vim/backup 在我的例子中)。

如果是上面的none,但你之前仍然正确编译了二进制文件

  1. 您可以尝试反编译,但这个过程 - 即使成功 - 也不是无损的(例如代码基本上是意大利面条)。

  2. 如果您使用 -g 标志进行编译,您可能可以从调试信息中检索代码。

  3. 你至少可以反assemble到汇编代码。