![Mac (Linux) - mv コマンドで削除されたファイルを復元する](https://rvso.com/image/1313346/Mac%20(Linux)%20-%20mv%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E5%89%8A%E9%99%A4%E3%81%95%E3%82%8C%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%BE%A9%E5%85%83%E3%81%99%E3%82%8B.png)
大きな問題が1つあります。main.cとlogic.cの2つのファイルがありました。logic.cにsedを使用して変更を加え、main_updated.cに保存して実行しました。
mv main_updated.c main.c
しかし、それは logic_updated.c と logic.c である必要がありました。誰か私を助けてくれませんか。main.c ファイルを復元する方法を教えてください。そうしないと、死んでしまいます。
答え1
古いデータは消えている可能性が非常に高いです。データの上書きに関しては、ファイルシステムがどのように動作するかによって大きく異なります。ファイルシステムが単に inode を解放し、ドライブ上の別の場所に新しい inode を割り当てるだけであれば、回復プログラムを使用してデータを見つけることができるかもしれません... おそらく、多数の inode が返されるので、どこを探せばよいかを知っておく必要があります (どの inode にファイルのすべてのデータが含まれているかがわからない場合があり、手動でつなぎ合わせる必要があります)。
教訓 - ほぼすべての変更の後にコミットする ;P
答え2
残念ながら、main.c ファイルが実際に破壊されてしまったようです。
将来的には、次のように mv を「対話的に」使用できるようになります。
mv -i filename new_filename/or_path
ファイルを上書きする前に確認が行われます。
また、バージョン管理ソフトウェアを使用して頻繁にコミットすることも良い考えです。