Wat is het SWP-bestandsformaat?
.swp is een Vim swap-bestand - een tijdelijk binair bestand dat Vim automatisch aanmaakt wanneer u een bestand opent voor bewerking. Het doel is herstel na een crash: als Vim onverwacht afsluit door stroomuitval, het sluiten van de terminal of een systeemcrash, bewaart het swap-bestand niet-opgeslagen wijzigingen die bij de volgende start kunnen worden hersteld.
Vim maakt het swap-bestand aan in dezelfde map als het bewerkte bestand en geeft het een naam met een voorafgaande punt en de extensie .swp - bijvoorbeeld: het bewerken van config.py produceert .config.py.swp. Op Unix-achtige systemen zorgt de voorafgaande punt ervoor dat het standaard verborgen is. Als meerdere Vim-sessies hetzelfde bestand bewerken, gebruiken opeenvolgende swap-bestanden .swo, .swn, enzovoort.
Het swap-bestand heeft een binaire, op blokken gebaseerde structuur. Het eerste blok van 4 KB (blok 0) bevat een b0VIM magic header, de Vim-versiereeks, het originele bestandspad, de hostnaam, gebruikersnaam en het proces-ID (PID). Opeenvolgende blokken slaan de bufferinhoud op, georganiseerd als een B-tree van pagina's van 1 KB. De bestandsinhoud wordt opgeslagen in platte tekst - het swap-bestand is niet versleuteld.
Wanneer Vim een bestand opent en een bestaand .swp-bestand detecteert, wordt u gevraagd om de niet-opgeslagen wijzigingen te herstellen (r voor Recover) of het verouderde bestand te verwijderen (d voor Delete). Een achtergebleven .swp zonder actief Vim-proces kan veilig worden verwijderd; voer vim -r bestandsnaam uit om expliciet een herstelpoging te doen. Neovim gebruikt hetzelfde swap-formaat.
Een beveiligingsoverweging: .swp-bestanden die achterblijven in mappen van een webserver kunnen niet-versleutelde broncode blootstellen als de server is geconfigureerd om verborgen bestanden te serveren.
Beveiliging & veiligheid
RISICO: MEDIUMHet .swp-bestand zelf is geen malware, maar het vormt een risico op informatielekken: (1) Achtergelaten in een web-toegankelijke map, stelt het de volledige platte tekst van het bewerkte bestand bloot, plus de hostnaam en gebruikersnaam van de server - een klassieke bevinding bij pentests. (2) Per ongeluk gecommit aan git: gebruik „git rm --cached .*.swp” en voeg „*.swp” toe aan .gitignore. Voeg „*.swp” toe aan uw globale .gitignore (~/.config/git/ignore) om onbedoelde commits te voorkomen.
Formaatdetails
in een notendop- Windows Virtual Memory Swap File - Windows gebruikt pagefile.sys/swapfile.sys, niet de .swp-extensie; verwarring met de OS-swap komt voor maar is onterecht.
- Oracle Forms .swp - Oudere Oracle Forms-versies gebruikten .swp voor een andere swap-buffer; zeer zeldzaam.
Programma's die SWP-bestanden openen
Technische details
diepe specificaties| Bestandsdoel | Crash-herstelbuffer voor actieve Vim-bewerkingssessies; automatisch verwijderd bij correct afsluiten |
| Magic bytes | `62 30 56 49 4D 20` („b0VIM ”) op offset 0 |
| Blokstructuur | Blok 0: 4 KB header; opeenvolgende blokken: 1 KB pagina's in een B-tree; totale grootte groeit met bufferinhoud |
| Header-inhoud | Vim-versiereeks, origineel bestandspad, hostnaam, gebruikersnaam en PID opgeslagen in blok 0 |
| Inhoudscodering | Platte tekst (geen versleuteling); originele bestandsinhoud is direct leesbaar uit het swap-bestand |
| Bytevolgorde | Platformafhankelijk (komt overeen met host Vim-build; meestal little-endian op x86 en ARM) |
| Naamgevingsconventie | `.bestandsnaam.swp` (voorafgaande punt + `.swp`-extensie); standaard verborgen op Unix-systemen |
| Overloop-naamgeving | Wanneer meerdere sessies hetzelfde bestand bewerken: `.swo`, `.swn`, `.swm`, … alfabetisch toegewezen |
| Detectie van veroudering | Vim controleert PID en hostnaam in de header van blok 0; waarschuwt als het geregistreerde proces niet meer draait |
| Herstelopdracht | `vim -r bestandsnaam` of druk op `r` bij de herstelprompt wanneer u het bestand opnieuw opent in Vim |
| Neovim-compatibiliteit | Neovim leest en schrijft Vim-compatibele swap-bestanden met hetzelfde `b0VIM`-headerformaat |
| Beveiligingsnotitie | Swap-bestanden in web-toegankelijke mappen stellen broncode bloot als platte tekst als de server punt-bestanden serveert |
| Uitgebracht | 1991 (Vim 1.0); vi swap concept from 1970s ex/vi |
| Laatste versie | Vim 9.1 (2024) swap format; compatible block-based format since Vim 6 |
| Specificatie | github.com |
SWP conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SWP-bestanden.