Hva er SWP-filformatet?
.swp er en Vim swap-fil - en midlertidig binærfil som Vim oppretter automatisk når du åpner en fil for redigering. Formålet er gjenoppretting etter krasj: hvis Vim avsluttes uventet på grunn av strømbrudd, lukking av terminalen eller systemkrasj, bevarer swap-filen ulagrede endringer som kan gjenopprettes ved neste oppstart.
Vim oppretter swap-filen i samme mappe som den redigerte filen, og navngir den med et innledende punktum og .swp-suffiks - for eksempel vil redigering av config.py produsere .config.py.swp. På Unix-lignende systemer gjør det innledende punktummet filen skjult som standard. Hvis flere Vim-sesjoner redigerer samme fil, vil påfølgende swap-filer bruke .swo, .swn, og så videre.
Swap-filen har en binær blokkbasert struktur. Den første 4 KB-blokken (blokk 0) inneholder en b0VIM magic header, Vim-versjonsstrengen, den opprinnelige filstien, vertsnavn, brukernavn og prosess-ID (PID). Påfølgende blokker lagrer bufferinnholdet organisert som et B-tre av 1 KB-sider. Filinnholdet lagres i ren tekst - swap-filen er ikke kryptert.
Når Vim åpner en fil og oppdager en eksisterende .swp, ber den deg om å gjenopprette («Recover», r) de ulagrede endringene eller slette («Delete», d) den foreldede filen. En gjenværende .swp uten en kjørende Vim-prosess er trygg å slette; kjør vim -r filnavn for å forsøke gjenoppretting eksplisitt. Neovim bruker samme swap-format.
En sikkerhetsvurdering: .swp-filer som blir liggende i webserver-mapper kan eksponere ukryptert kildekode hvis serveren er konfigurert til å vise skjulte filer.
Sikkerhet og trygghet
RISIKO: MEDIUMSelve .swp-filen er ikke skadevare, men den utgjør en risiko for informasjonslekkasje: (1) Hvis den blir liggende i en web-tilgjengelig mappe, eksponerer den hele kildekoden i ren tekst pluss serverens vertsnavn og brukernavn - et klassisk funn i penetrasjonstester. (2) Utilsiktet lagring i git: «git rm --cached .*.swp» og legg til «*.swp» i .gitignore. Legg til «*.swp» i din globale .gitignore (~/.config/git/ignore) for å forhindre utilsiktede commits.
Formatdetaljer
i et nøtteskall- Windows Virtual Memory Swap File - Windows bruker pagefile.sys/swapfile.sys, ikke .swp-etternavnet; forveksling med operativsystemets swap-fil er ubegrunnet, men vanlig.
- Oracle Forms .swp - Eldre Oracle Forms-versjoner brukte .swp for en annen swap-buffer; svært sjeldent.
Programmer som åpner SWP-filer
Tekniske detaljer
dyp spesifikasjon| Filformål | Buffer for gjenoppretting etter krasj for aktive Vim-redigeringssesjoner; slettes automatisk ved normal avslutning |
| Magic bytes | `62 30 56 49 4D 20` («b0VIM ») ved offset 0 |
| Blokkstruktur | Blokk 0: 4 KB header; påfølgende blokker: 1 KB-sider i et B-tre; total størrelse vokser med bufferinnholdet |
| Header-innhold | Vim-versjonsstreng, opprinnelig filsti, vertsnavn, brukernavn og PID lagret i blokk 0 |
| Innholdskoding | Ren tekst (ingen kryptering); opprinnelig filinnhold er direkte lesbart fra swap-filen |
| Byterekkefølge | Plattformavhengig (matcher vertens Vim-bygg; vanligvis little-endian på x86 og ARM) |
| Navnekonvensjon | `.filnavn.swp` (innledende punktum + `.swp`-suffiks); skjult på Unix-systemer som standard |
| Navngivning ved overlapp | Når flere sesjoner redigerer samme fil: `.swo`, `.swn`, `.swm`, … tildelt alfabetisk |
| Deteksjon av foreldelse | Vim kryssjekker PID og vertsnavn i blokk 0-headeren; advarer hvis den registrerte prosessen ikke lenger kjører |
| Gjenopprettingskommando | `vim -r filnavn` eller trykk `r` ved gjenopprettingsspørsmålet når filen åpnes på nytt i Vim |
| Neovim-kompatibilitet | Neovim leser og skriver Vim-kompatible swap-filer ved bruk av samme `b0VIM`-headerformat |
| Sikkerhetsmerknad | Swap-filer i web-tilgjengelige mapper eksponerer kildekode som ren tekst hvis serveren viser punktum-filer |
| Utgitt | 1991 (Vim 1.0); vi swap concept from 1970s ex/vi |
| Siste versjon | Vim 9.1 (2024) swap format; compatible block-based format since Vim 6 |
| Spesifikasjon | github.com |
SWP-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om SWP-filer.