Cosa causa la creazione dei file di scambio?


31

Come parte del programma che ho scritto, leggo e scrivo costantemente dati dai file. Ho notato che come parte di ciò, sto inavvertitamente creando .swpfile di scambio .

Cosa pensi stia succedendo? Cosa farebbe apparire i file di scambio se dovessi riprodurre il problema?

Risposte:


41

Il file .swp non è un file di scambio nel senso del sistema operativo. È un file di stato. Mantiene le modifiche dall'ultimo salvataggio (tranne gli ultimi 200 caratteri), i buffer salvati, le macro non salvate e la struttura di annullamento.

Si può leggere di più in aiuto di VIM: vim +help\ swap-file. Se si verifica un arresto anomalo (interruzione dell'alimentazione, arresto anomalo del sistema operativo, ecc.), È possibile ripristinare le modifiche utilizzando questo file di scambio. Dopo aver salvato le modifiche dal file di scambio al file originale, dovrai uscire da vim e rimuovere tu stesso il file di scambio.


Per qualche motivo, il mio file ~ / .swp è di 11,7 GB. L'ho appena cancellato.
Daniel Cheung,

19

.swpi file sono creati da Vim , dovrebbero essere automaticamente cancellati quando si chiude il file e si esce dall'editor.


1
Possono essere creati dall'esterno Vim? Nel mio caso i file vengono scritti direttamente dal mio programma, senza utilizzare l'editor
JAM

@JAM: Con quale lingua e librerie è scritto questo programma?
jwodder,

5
@JAM Generalmente no, è una funzione Vim. Dubito che questi file vengano scritti direttamente dal tuo programma a tua insaputa, non ha senso. È molto più probabile che tu sia confuso, questi file vengono creati mentre modifichi i file con Vim e li stai attribuendo al tuo programma.
Juliano,

4

I file .swp non sono altro che una sorta di file di blocco che l'editor, generalmente vim, crea per indicare che il file è in fase di modifica. In questo modo se apri il file in un'altra istanza di vim se qualcuno nella rete lo ha fatto, vedrà un avviso che il file è in fase di modifica.
Non è necessario eliminarli manualmente. Il tuo editor rimuoverà il file di scambio una volta chiuso il file nel tuo editor.


2

Ho appena eseguito un comando mv su un file da 31 GB ed è stato creato un file .swp da 13 GB, senza modifiche.

mv X.csv Y.csv creato Y.csv e .Y.csv.swp

CentOS 6.5, file system ext4


Grazie. Hai avuto un'esperienza simile anche con `rsync '?
imriss,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.