Co to jest format pliku SWP?
.swp to plik wymiany (swap) Vim - tymczasowy plik binarny, który Vim tworzy automatycznie po otwarciu pliku do edycji. Jego celem jest odzyskiwanie danych po awarii: jeśli Vim nieoczekiwanie zakończy pracę z powodu utraty zasilania, zamknięcia terminala lub awarii systemu, plik wymiany zachowuje niezapisane zmiany, które można odzyskać przy następnym uruchomieniu.
Vim tworzy plik wymiany w tym samym katalogu, co edytowany plik, nadając mu nazwę z kropką na początku i rozszerzeniem .swp - na przykład edycja config.py generuje plik .config.py.swp. W systemach typu Unix kropka na początku sprawia, że plik jest domyślnie ukryty. Jeśli wiele sesji Vim edytuje ten sam plik, kolejne pliki wymiany otrzymują rozszerzenia .swo, .swn i tak dalej.
Plik wymiany ma binarną strukturę opartą na blokach. Pierwszy blok 4 KB (blok 0) zawiera nagłówek magiczny b0VIM , ciąg wersji Vim, ścieżkę do oryginalnego pliku, nazwę hosta, nazwę użytkownika i identyfikator procesu (PID). Kolejne bloki przechowują zawartość bufora zorganizowaną jako B-drzewo stron o rozmiarze 1 KB. Zawartość pliku jest przechowywana jako zwykły tekst - plik wymiany nie jest szyfrowany.
Gdy Vim otwiera plik i wykryje istniejący .swp, poprosi o odzyskanie zmian (r - Recover) lub usunięcie nieaktualnego pliku (d - Delete). Pozostały plik .swp, któremu nie towarzyszy żaden uruchomiony proces Vim, można bezpiecznie usunąć; uruchom vim -r nazwa_pliku, aby jawnie spróbować odzyskiwania. Neovim używa tego samego formatu wymiany.
Kwestia bezpieczeństwa: pliki .swp pozostawione w katalogach serwera WWW mogą ujawnić niezaszyfrowany kod źródłowy, jeśli serwer jest skonfigurowany do serwowania ukrytych plików.
Bezpieczeństwo
RYZYKO: MEDIUMSam plik .swp nie jest złośliwym oprogramowaniem, ale stwarza ryzyko ujawnienia informacji: (1) Pozostawiony w katalogu dostępnym przez WWW, ujawnia pełny tekst edytowanego pliku oraz nazwę hosta i użytkownika serwera - klasyczne znalezisko podczas testów penetracyjnych. (2) Przypadkowe zatwierdzenie w git: użyj „git rm --cached .*.swp” i dodaj „*.swp” do .gitignore. Dodaj „*.swp” do swojego globalnego .gitignore (~/.config/git/ignore), aby zapobiec przypadkowym commitom.
Szczegóły formatu
w pigułce- Plik wymiany pamięci wirtualnej Windows - Windows używa pagefile.sys/swapfile.sys, a nie rozszerzenia .swp; mylenie go z plikiem wymiany systemu operacyjnego jest bezpodstawne, ale częste.
- Oracle Forms .swp - Starsze wersje Oracle Forms używały .swp dla innego bufora wymiany; bardzo rzadkie.
Programy otwierające pliki SWP
Szczegóły techniczne
specyfikacja| Cel pliku | Bufor odzyskiwania po awarii dla aktywnych sesji edycji Vim; automatycznie usuwany przy poprawnym wyjściu |
| Magiczne bajty | `62 30 56 49 4D 20` („b0VIM ”) pod offsetem 0 |
| Struktura blokowa | Blok 0: nagłówek 4 KB; kolejne bloki: strony 1 KB w B-drzewie; całkowity rozmiar rośnie wraz z zawartością bufora |
| Zawartość nagłówka | Ciąg wersji Vim, ścieżka do oryginalnego pliku, nazwa hosta, użytkownika i PID zapisane w bloku 0 |
| Kodowanie zawartości | Zwykły tekst (brak szyfrowania); oryginalna zawartość pliku jest bezpośrednio czytelna z pliku wymiany |
| Kolejność bajtów | Zależna od platformy (zgodna z kompilacją hosta Vim; zazwyczaj little-endian na x86 i ARM) |
| Konwencja nazewnictwa | `.nazwapliku.swp` (kropka na początku + rozszerzenie `.swp`); domyślnie ukryte w systemach Unix |
| Nazewnictwo przy przepełnieniu | Gdy wiele sesji edytuje ten sam plik: `.swo`, `.swn`, `.swm`, … przydzielane alfabetycznie |
| Wykrywanie nieaktualności | Vim krzyżowo sprawdza PID i nazwę hosta w nagłówku bloku 0; ostrzega, jeśli zapisany proces już nie działa |
| Polecenie odzyskiwania | `vim -r nazwa_pliku` lub naciśnięcie `r` przy monicie o odzyskiwanie podczas ponownego otwierania pliku w Vim |
| Kompatybilność Neovim | Neovim odczytuje i zapisuje pliki wymiany kompatybilne z Vim, używając tego samego formatu nagłówka `b0VIM` |
| Uwaga dot. bezpieczeństwa | Pliki wymiany w katalogach dostępnych przez WWW ujawniają kod źródłowy jako zwykły tekst, jeśli serwer serwuje pliki z kropką |
| Wydano | 1991 (Vim 1.0); vi swap concept from 1970s ex/vi |
| Najnowsza wersja | Vim 9.1 (2024) swap format; compatible block-based format since Vim 6 |
| Specyfikacja | github.com |
Konwersje SWP
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki SWP.