Co powoduje tworzenie plików wymiany?

31

W ramach programu, który napisałem, stale czytam i zapisuję dane z plików. Zauważyłem, że w ramach tych działań nieumyślnie tworzę .swppliki wymiany .

Jak myślisz, co się dzieje? Co spowodowałoby pojawienie się plików wymiany, gdybyś musiał odtworzyć problem?

DŻEM
źródło

Odpowiedzi:

41

Plik .swp nie jest plikiem wymiany w sensie systemu operacyjnego. Jest to plik stanu. Zachowuje twoje zmiany od ostatniego zapisu (oprócz ostatnich 200 znaków), bufory, które zapisałeś, niezapisane makra i strukturę cofania.

Możesz przeczytać więcej w vim za pomocą: vim +help\ swap-file. Jeśli nastąpi awaria (awaria zasilania, awaria systemu operacyjnego itp.), Możesz odzyskać zmiany za pomocą tego pliku wymiany. Po zapisaniu zmian z pliku wymiany do oryginalnego pliku, będziesz musiał wyjść z vima i sam usunąć plik wymiany.

Arcege
źródło
Z jakiegoś powodu mój plik ~ / .swp ma 11,7 GB. Właśnie to usunąłem.
Daniel Cheung
19

.swppliki są tworzone przez Vima , powinny zostać automatycznie usunięte po zamknięciu pliku i zamknięciu edytora.

Juliano
źródło
1
Czy można je tworzyć spoza Vim? W moim przypadku pliki są zapisywane bezpośrednio z mojego programu, bez użycia edytora
JAM
@JAM: W jakim języku i bibliotekach jest napisany ten program?
jwodder
5
@JAM Zasadniczo nie, jest to funkcja Vima. Wątpię, czy te pliki są zapisywane bezpośrednio z twojego programu bez twojej wiedzy, to nie ma sensu. Bardziej prawdopodobne jest, że jesteś zdezorientowany, pliki te są tworzone podczas edycji plików za pomocą Vima i przypisujesz je do swojego programu.
Juliano
4

Pliki .swp są niczym innym jak plikiem blokującym, który redagujesz, ogólnie vim, aby wskazać, że plik jest edytowany. W ten sposób, jeśli otworzysz plik w innym wystąpieniu vima lub jeśli ktoś w sieci to zrobił, zobaczy ostrzeżenie, że plik jest edytowany.
Nie musisz ich usuwać ręcznie. Twój edytor usunie plik wymiany po zamknięciu go w edytorze.

Aditya Patawari
źródło
2

Właśnie wykonałem polecenie mv dla pliku 31 GB i utworzono plik .swp 13 GB, bez edycji.

mv X.csv Y.csv utworzył Y.csv i .Y.csv.swp

System plików CentOS 6.5, ext4

użytkownik56408
źródło
Dzięki. Czy miałeś podobne doświadczenie z `rsync '?
imriss