it-swarm.com.de

Wie kann ich die Originaldatei aus einer .swp-Datei wiederherstellen?

Ich habe versucht, die .swp-Datei mit vi und cat zu öffnen, aber es wird Junk angezeigt.

54
zarna
vim -r .swp

Dies geht in den Wiederherstellungsmodus und gibt Ihnen weitere Informationen. Ich denke das ist was du willst.

.swX- Dateien bleiben zurück, wenn eine Sitzung mit einer nicht gespeicherten Datei beendet wird/abstürzt/etwas anderes Schlimmes passiert. Sie sind auch während der Zeit vorhanden, in der ein nicht gespeicherter Puffer in einer Vim-Sitzung geöffnet ist. vim -r liest diese temporären Dateien und erstellt den Inhalt neu. Nachdem Sie es wiederhergestellt haben, speichern Sie es einfach wie gewohnt, z. :w newfilename.

87

Sie benötigen nicht die Originaldatei, um die .swp-Datei wiederherzustellen. Öffnen Sie einfach die Datei, als ob sie existiert. vim sucht nach der Datei mit der Erweiterung .swp und bietet an, sie wiederherzustellen.

z.B.:

$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:

Drücken Sie einfach R, um es wiederherzustellen und: wq die Datei

Bearbeiten: Beachten Sie, dass die SWP-Datei nur die Änderungen enthält, die an der Datei vorgenommen wurden (siehe Kommentar). Dies bedeutet, dass Sie eine aktuelle Kopie der Datei aus der Sicherung abrufen und dann mit vim die neuesten Änderungen wiederherstellen müssen. Wenn Sie keine Sicherungskopie der Datei haben, haben Sie wirklich Pech.

16

1 Öffnen Sie die Auslagerungsdatei .file.swp in vim

2 :recover stellt Ihre Datei wieder her

7
Sathyam

Öffnen Sie die Originaldatei mit vim und wählen Sie die Wiederherstellungsoption.

Nachdem ich die Kommentare von Vegar Westerlund und Heptite gelesen hatte, wollte ich wissen, an welchem ​​Punkt vim die Originaldatei (oder eine Sicherungskopie) benötigt, um von einer SWP-Datei wiederherzustellen. Folgendes hat getan:

Ich habe eine 975-Zeilen-Datei geöffnet, in Zeile 949 bearbeitet (eine .swp-Datei erstellt), den Vorgang abgebrochen und dann das Original gelöscht. $ vim Original_File fragte, ob ich von der .swp wiederherstellen wollte "> yes; Nur die ersten 68 Zeilen und die letzten 34 Zeilen (beginnend mit 8 Zeilen oberhalb meiner Bearbeitung) wurden tatsächlich wiederhergestellt.

Ich habe den Test dann mit kleineren Dateien wiederholt: Von 20 bis 200 Zeilen enthielt die .swp-Datei 100% des ursprünglichen Inhalts. Bei 300 Zeilen waren jedoch nur die ersten 68 und die letzten 18 Zeilen (beginnend mit 2 Zeilen über meiner Bearbeitung) in der SWP-Datei enthalten.

Als Fazit ist es gut zu wissen, dass vim immer die "Header" und "Bottom" der Datei in den .swp-Dateien speichert. Vielleicht gibt es eine Einstellung, um zu steuern, wie viele Zeilen eine .swp-Datei enthalten soll?

6
tuk0z