Я запускал программу от удара с ее выводом, перенаправленным в файл (test.out). Процесс умер из-за некоторых проблем (проблемы не важны в этом контексте), и теперь меня оставляют с двумя файлами:
test.out
который составляет 2,1 ГБ, и.test.out.swp
который составляет 19 МБСуществует ли способ объединить эти файлы, как в добавлении файла подкачки в конце исходного файла?
Или, я нахожусь неправильно в желании сделать это? Файл подкачки имеет другую цель, чем быть используемым с выводом/журналом?
Vim использует файлы .swp в качестве областей хранения для незавершенной работы, что позволяет ему редактировать очень большие файлы, даже если они не могут полностью поместиться в памяти. Это наследие со времен, когда ОЗУ компьютера было очень маленьким, а большие файлы, которые не помещались в памяти, были более распространенными, но они остались, и это означает, что мы можем редактировать файлы размером в несколько гигабайт, не занимая всю доступную оперативную память и не убивая процессы. Vim удаляет файл .swp, когда он закончит редактирование, или оставляет его, если процесс завершается ненормально.
Если у вас есть файл .swp и оригинальный файл, вы можете несколько восстановить утраченную работу. Это задокументировано здесь:
http://vimdoc.sourceforge.net/htmldoc/recover.html
Чтобы восстановить файл, просто откройте исходный файл. vim заметит, что с файлом уже связан файл .swp, предупредит вас и спросит, что вы хотите сделать. Предполагая, что у вас есть необходимые привилегии для записи в файл, «восстановление» должно быть одной из указанных опций.
В качестве альтернативы вы можете запустить новый экземпляр vim (на пустом документе) и использовать команду :recover <file>
, указав файл, который вы хотите восстановить.
Обратите внимание, что основное использование файлов .swp - это временное хранилище для vim, позволяющее редактировать большие файлы, а НЕ восстановление. Таким образом, vim не ведет журнал записи в файл, и если во время редактирования отключается питание .swp-файл может быть поврежден. К счастью, инструмент восстановления в vim достаточно терпим к частичному повреждению файлов .swp и будет пытаться восстановить столько потерянных изменений в файле, сколько сможет. Посмотрите на наличие трех вопросительных знаков: ???
в восстановленном файле, так как они будут вставлены при обнаружении повреждения в файле .swp.
Как только вы будете довольны восстановлением, вам нужно вручную удалить файл .swp, чтобы не получать предупреждение при редактировании файла. Будьте осторожны, чтобы не запускать процесс восстановления во второй раз.
Технически отвечать на Ваш вопрос:
cat test.out > experiment.out
cat .test.out.swp >> experiment.out
Первое перенаправление cat
команда >
создает новый файл. Второе перенаправление cat
команда >>
добавляет в существующий файл.
В действительности experiment.out
вероятно, не будет применимо, потому что Вы добавляете яблоко к апельсину.
Можно погуглить восстановление файлов: Superuser.com, Как я могу восстановить исходный файл с .swpfile? В коротком использовании:
vim -r .swp
Сделайте копии всех файлов сначала!
Если бы это не работает, я использовал бы gedit
на обоих файлах на отдельных вкладках и затем на третьей вкладке вставляют текст, скопированный с первых двух вкладок.