Qu'est-ce qui provoque la création de fichiers d'échange?

31

Dans le cadre du programme que j'ai écrit, je lis et écris constamment des données à partir de fichiers. J'ai remarqué que dans le cadre de cette opération, je crée par inadvertance des .swpfichiers d' échange .

Que pensez-vous qui se passe? Qu'est-ce qui ferait apparaître les fichiers d'échange si vous deviez reproduire le problème?

CONFITURE
la source

Réponses:

41

Le fichier .swp n'est pas un fichier d'échange au sens du système d'exploitation. Il s'agit d'un fichier d'état. Il conserve vos modifications depuis la dernière sauvegarde (à l'exception des 200 derniers caractères), les tampons que vous avez enregistrés, les macros non enregistrées et la structure d'annulation.

Vous pouvez en lire plus dans l'aide VIM: vim +help\ swap-file. En cas de plantage (panne de courant, plantage du système d'exploitation, etc.), vous pouvez récupérer vos modifications à l'aide de ce fichier d'échange. Après avoir enregistré les modifications du fichier d'échange dans le fichier d'origine, vous devrez quitter vim et supprimer le fichier d'échange vous-même.

Arcege
la source
Pour une raison quelconque, mon fichier ~ / .swp fait 11,7 Go. Je viens de le supprimer.
Daniel Cheung
19

.swples fichiers sont créés par Vim , ils doivent être supprimés automatiquement lorsque vous fermez le fichier et quittez l'éditeur.

Juliano
la source
1
Peuvent-ils être créés de l'extérieur Vim? Dans mon cas, les fichiers sont écrits directement à partir de mon programme, sans utiliser l'éditeur
JAM
@JAM: Avec quelle langue et quelles bibliothèques ce programme est-il écrit?
jwodder
5
@JAM Généralement non, c'est une fonctionnalité Vim. Je doute que ces fichiers soient écrits directement à partir de votre programme à votre insu, cela n'a pas de sens. Il est beaucoup plus probable que vous soyez confus, ces fichiers sont créés pendant que vous éditez les fichiers avec Vim, et vous les attribuez à votre programme.
Juliano
4

Les fichiers .swp ne sont rien d'autre qu'une sorte de fichier de verrouillage que votre éditeur, généralement vim, crée pour indiquer que le fichier est en cours de modification. De cette façon, si vous ouvrez le fichier dans une autre instance vim de si quelqu'un dans le réseau l'a fait, il verra un avertissement indiquant que le fichier est en cours de modification.
Vous n'avez pas besoin de les supprimer manuellement. Votre éditeur supprimera le fichier d'échange une fois que vous aurez fermé le fichier dans votre éditeur.

Aditya Patawari
la source
2

Je viens d'exécuter une commande mv sur un fichier de 31 Go et un fichier .swp de 13 Go a été créé, sans modification.

mv X.csv Y.csv créé Y.csv et .Y.csv.swp

CentOS 6.5, système de fichiers ext4

user56408
la source
Merci. Avez-vous également eu une expérience similaire avec rsync?
imriss