86 votes

Comment puis-je récupérer le fichier original à partir d'un fichier .swp?

J'ai essayé d'ouvrir le fichier .swp en utilisant vi et cat mais cela affiche des données incorrectes.

145voto

Daniel Andersson Points 22765
vim -r .swp

Cela entre en mode de récupération et vous donne plus d'informations. Je pense que c'est ce que vous voulez.

.swX-fichiers sont laissés derrière lorsque qu'une session avec un fichier non enregistré est interrompue/se plante/quelque chose d'autre de mauvais se produit. Ils sont également présents pendant le temps où un tampon non enregistré est ouvert dans une session Vim. vim -r lit ces fichiers temporaires et recrée le contenu. Après l'avoir récupéré, enregistrez-le simplement comme d'habitude, par exemple :w nouveau nom de fichier.

21voto

Ray Points 11

Vous n'avez pas besoin d'avoir le fichier original pour récupérer le .swp. Ouvrez simplement le fichier comme s'il existait. vim recherchera le fichier avec l'extension .swp et proposera de le récupérer.

par exemple :

$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Le fichier d'échange ".test.txt.swp" existe déjà !
(O)uvrir en lecture seule, (E)diter quand même, (R)écupérer, (S)upprimer, (Q)uitter, (A)bort:

Appuyez simplement sur R pour le récupérer et :wq pour enregistrer le fichier

Éditer : Notez que le fichier .swp ne contient que les modifications apportées au fichier (voir commentaire). Cela signifie que vous devrez récupérer une copie récente du fichier depuis la sauvegarde, puis utiliser vim pour récupérer les dernières modifications. Si vous n'avez pas de copie de sauvegarde du fichier, vous avez vraiment de la malchance.

13voto

Neha Anand Points 31

1 Ouvrez le fichier d'échange .file.swp dans vim

2 :recover récupérera votre fichier

10voto

Markus Johnsson Points 2157

Après avoir lu les commentaires de Vegar Westerlund et de Heptite, j'ai voulu savoir à quel moment vim avait besoin du fichier original (ou d'une sauvegarde) pour récupérer à partir d'un fichier .swp. Voici ce que j'ai fait :

J'ai ouvert un fichier de 975 lignes, je l'ai édité à la ligne 949 (créant ainsi un fichier .swp) puis j'ai arrêté le processus et supprimé l'original. $ vim Original_File a demandé si je voulais récupérer à partir du fichier .swp » > oui; seules les 68 premières lignes et les 34 dernières lignes (à partir de 8 lignes avant mon édition) ont été réellement récupérées.

J'ai ensuite répété le test avec des fichiers plus petits : De 20 à 200 lignes, le fichier .swp contenait 100% du contenu original. Mais à 300 lignes, seules les 68 premières et les 18 dernières lignes (à partir de 2 lignes avant mon édition) étaient incluses dans le .swp.

En conclusion, il est bon de savoir que vim sauve toujours l'"en-tête" et le "bas" du fichier dans les fichiers .swp. Peut-être qu'il y a un paramètre pour contrôler combien de lignes un .swp devrait contenir ?

8voto

Ouvrez le fichier original en utilisant vim et choisissez l'option de récupération.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X