Я записал исходный код C++ и соответствовал он тому же имени с помощью следующей командной строки.
Например:
c++ source-code.cpp -o source-code.cpp
Теперь мой исходный код был заменен исполняемой программой. Есть ли любой способ получить мой исходный код. Я плохо знаком с Linux, таким образом, я не уверен, существует ли какой-либо способ отменить то, что я сделал.
Вам могло бы повезти сделать, чтобы редактор открылся или окно терминала scrollback.
И в locking-the-barn-door-after-the-horse-has-bolted отделе, хорошая практика разработки, даже когда работа над игрушечными программами должна использовать управление исходным кодом.
Или Используя мерзавца или Используя hg, можно сделать
$ hg init
$ hg add source.cpp
$ hg commit -m 'change' source.cpp
$ # edit here, and you can optionally revert to the original
$ hg commit -m 'change' source.cpp
$ # now if you clobber it you can go back to one of the previous revisions
Опция -o
указывает выходной файл, именно поэтому исходный код был перезаписан.
Необходимо было использовать
c++ source-code.cpp -o executable-name
Что касается получения первоисточника из скомпилированного файла: нет Вы не можете. Вы могли демонтировать его (поэтому получите версию блока своей программы), и я уверен, что существует некоторая небольшая программа там, которая перепишет некоторый "код" стиля C++ от него, но это никогда не будет похоже на Ваш исходный код, поскольку больше чем одна инструкция в C++ может соответствовать тому же машинному коду.
Который сделал редактор Вы используете. По всей вероятности мог бы быть источник-code.cpp ~ файл резервной копии при использовании Vim или чего-то.
ой... Вам не повезло.
В первую очередь: Сразу размонтируйте файловую систему, на которой был расположен удаленный файл. Это минимизирует риск, что данные удаленного файла перезаписываются при предпринятии шаги для восстановления их. Все данные, записанные в файловую систему, содержащую удаленный файл - или Вами или любым другим процессом, работающим на Вашей машине - могли бы перезаписать некоторые данные, которые Вы хотите восстановить!
больше здесь: http://e2undel.sourceforge.net/recovery-howto.html
Попробуйте некоторый дисковый инструмент восстановления, возможно, новый файл не был записан на тех же блоках как исходный. Я просто думаю вслух здесь, но лучше, что Вы дали этому выстрел. Btw, какого редактора Вы используете? Вы проверили, создает ли Ваш редактор автоматическое резервное копирование каждого файла?
В очень маловероятном событии, что Вы еще не закрыли свой vi сеанс, откройте новый терминал и ищите a .source-code.cpp.swp
файл в той же папке. Помните, что файлы, запускающиеся с периода, не перечислены ls
команда по умолчанию; использовать ls -A
видеть их.
Последняя строка .swp
файл имел бы текст из Вашего исходного файла прежде чем быть поврежденным mal-компиляцией.
Мой исходный файл test.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!" << endl;
cout << "Let us C";
}
Последняя часть моего .test.cpp.swp
(в этом случае это содержало единственную огромную строку).
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
@^@^@^cout << "Let us C";^@ cout << "Hello World!" << endl;^@{^@int main()^@^@using namespace std;^@#i nclude <iostream>^@
.swp
файл удален, после того как Вы закрыли vi сеанс; таким образом, если Вы уже закрыли его, Вам не повезло.
нет, если Вы не можете отменить свое действие через Linux, Ваш исходный код потерян. Вероятно, необходимо было скомпилировать его в другое имя.
Вы не можете обратная компиляция Ваш исходный код.
Я не скажу, что это невозможно. ФБР может, вероятно, вернуть некоторую часть его с огромной помощью помещения в "кучу" удачи. Но так как Ваш исполняемый файл, конечно, больше, чем Ваш источник, Вы перезаписали все это.
Это - одна причина, почему необходимо использовать систему управления версиями. Выезд SVN.
Как @jase21 упомянутый, если Вы использовали vim
или gedit
, будет a source.cpp~
файл, который содержит резервное копирование.
emacs
будет иметь a #source.cpp#
файл.
Какой текстовый редактор Вы использовали? На более легкой ноте, сколько потерянных строк кода?