悲しいことに、次のコマンドで .c ファイルをコンパイルしました。
$ gcc a.c -o a.c
そのため、ac は私の古い c ファイルをカバーする実行可能ファイルになりました...実際の ac ファイルを元に戻すことはできますか?
残念ながら、バイナリ コードのリバース エンジニアリングに精通していない限り、それはほぼ不可能です。
バックアップから復元することも、ソース コード管理システムから復元することもできます。
どちらも持っていない場合は、両方を使い始める必要があります (その理由がわかりました!)。
また、使用している OS のファイル回復ツールを使用してファイルを回復できる場合もあれば、失敗した場合はオブジェクト ファイルを逆コンパイルできる場合もあります。ここに逆コンパイラがあります:
http://boomerang.sourceforge.net/cando.php?hidemenu
これは、「c decompiler」で Google を検索した後のリストの最初のものでした。
これは、逆コンパイラに関するスタックオーバーフローの質問です。
ファイルを上書きする場合、オペレーティング システムはデータを物理的に正確に同じ場所に配置するのではなく、単に古いデータを使用可能としてマークし、新しいデータをディスクに書き込みます。ファイルを上書きするかもしれませんが、そうでないかもしれません。Midnight Commander には、ファイルを取り戻そうとするツールがあります。
現在、Midnight Commander はいくつかの仮想ファイル システム (VFS) にパッケージ化されています: ... ext2 ファイル システム (Linux システムのデフォルト ファイル システム) で削除されたファイルを回復するために使用される undelfs
それまでの間、コンピュータ上の他のファイル、特に削除したファイルがあるディレクトリには保存しないでください。
編集: ところで、これは古い記事です。Linux はしばらくの間 ext2 を使用していません。しかし、それはまだ機能するはずだと思います。