我有一个大问题。我有两个文件 - main.c 和 logic.c。我使用 sed 对 logic.c 进行了一些修改,然后将其保存到 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
在覆盖文件之前它会与您检查。
另外,使用版本控制软件频繁提交也是一个好主意。