![Mac (Linux) — восстановление файла, удаленного с помощью команды mv](https://rvso.com/image/1313346/Mac%20(Linux)%20%E2%80%94%20%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%2C%20%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B%20mv.png)
У меня есть одна большая проблема. У меня было два файла - main.c и logic.c. Я использовал sed для некоторых изменений в logic.c, а затем сохранил его в main_updated.c и затем запустил
mv main_updated.c main.c
НО это должны были быть logic_updated.c и logic.c. Пожалуйста, кто-нибудь может мне помочь, как восстановить файл main.c, или я умру.
решение1
Скорее всего, ваши старые данные исчезли. Это действительно зависит от того, как работает файловая система, когда дело доходит до перезаписи данных — если файловая система просто освобождает inodes и выделяет новые в другом месте на диске, вы можете использовать программу восстановления, чтобы найти данные... возможно — вам нужно знать, где искать, поскольку она, вероятно, вернет кучу inodes (и она может не знать, какие из них содержат все данные для ваших файлов, поэтому вам придется собирать их вручную).
Урок усвоен - делайте коммит после (большинства) каждого изменения ;P
решение2
Боюсь, что вы на самом деле испортили свой файл main.c.
В будущем вы сможете использовать mv «интерактивно» с помощью:
mv -i filename new_filename/or_path
Перед перезаписью файла он проверит его.
Также хорошей идеей будет частое внесение изменений в программное обеспечение для контроля версий.