Was ist das SWP-Dateiformat?
.swp ist eine Vim-Swap-Datei - eine temporäre Binärdatei, die Vim automatisch erstellt, wenn Sie eine Datei zur Bearbeitung öffnen. Ihr Zweck ist die Wiederherstellung nach Abstürzen: Wenn Vim unerwartet beendet wird (z. B. durch Stromausfall, Schließen des Terminals oder Systemabsturz), bewahrt die Swap-Datei nicht gespeicherte Änderungen auf, die beim nächsten Start wiederhergestellt werden können.
Vim erstellt die Swap-Datei im selben Verzeichnis wie die bearbeitete Datei und benennt sie mit einem führenden Punkt und dem Suffix .swp - zum Beispiel erzeugt das Bearbeiten von config.py die Datei .config.py.swp. Auf Unix-ähnlichen Systemen macht der führende Punkt sie standardmäßig zu einer versteckten Datei. Wenn mehrere Vim-Sitzungen dieselbe Datei bearbeiten, verwenden nachfolgende Swap-Dateien die Endungen .swo, .swn und so weiter.
Die Swap-Datei hat eine binäre, blockbasierte Struktur. Der erste 4-KB-Block (Block 0) enthält einen b0VIM -Magic-Header, den Vim-Versionsstring, den ursprünglichen Dateipfad, den Hostnamen, den Benutzernamen und die Prozess-ID (PID). Nachfolgende Blöcke speichern den Pufferinhalt, organisiert als B-Baum aus 1-KB-Seiten. Die Dateiinhalte werden im Klartext gespeichert - die Swap-Datei ist nicht verschlüsselt.
Wenn Vim eine Datei öffnet und eine vorhandene .swp erkennt, werden Sie aufgefordert, die nicht gespeicherten Änderungen wiederherzustellen (r für Recover) oder die veraltete Datei zu löschen (d für Delete). Eine verbliebene .swp-Datei ohne laufenden Vim-Prozess kann sicher gelöscht werden; führen Sie vim -r Dateiname aus, um eine Wiederherstellung explizit zu versuchen. Neovim verwendet dasselbe Swap-Format.
Ein Sicherheitshinweis: .swp-Dateien, die in Webserver-Verzeichnissen verbleiben, können unverschlüsselten Quellcode offenlegen, wenn der Server so konfiguriert ist, dass er versteckte Dateien ausliefert.
Sicherheit
RISIKO: MEDIUMDie .swp-Datei selbst ist keine Malware, stellt aber ein Risiko für die Offenlegung von Informationen dar: (1) In einem webzugänglichen Verzeichnis gibt sie den vollständigen Klartext der bearbeiteten Datei sowie den Hostnamen und Benutzernamen des Servers preis - ein klassischer Befund bei Penetrationstests. (2) Versehentliches Commit in git: Nutzen Sie „git rm --cached .*.swp“ und fügen Sie „*.swp“ zur .gitignore hinzu. Fügen Sie „*.swp“ zu Ihrer globalen .gitignore (~/.config/git/ignore) hinzu, um versehentliche Commits zu verhindern.
Formatdetails
kurz gefasst- Windows Virtual Memory Swap File - Windows verwendet pagefile.sys/swapfile.sys, nicht die Endung .swp; die Verwechslung mit dem Betriebssystem-Swap ist unbegründet, aber häufig.
- Oracle Forms .swp - Ältere Oracle Forms-Versionen verwendeten .swp für einen anderen Swap-Puffer; sehr selten.
Programme zum Öffnen von SWP-Dateien
Technische Details
technische Spezifikation| Dateizweck | Absturz-Wiederherstellungspuffer für aktive Vim-Sitzungen; wird bei sauberem Beenden automatisch gelöscht |
| Magic Bytes | `62 30 56 49 4D 20` („b0VIM “) bei Offset 0 |
| Blockstruktur | Block 0: 4-KB-Header; nachfolgende Blöcke: 1-KB-Seiten in einem B-Baum; Gesamtgröße wächst mit Pufferinhalt |
| Header-Inhalt | Vim-Versionsstring, ursprünglicher Dateipfad, Hostname, Benutzername und PID gespeichert in Block 0 |
| Inhaltskodierung | Klartext (keine Verschlüsselung); ursprünglicher Dateiinhalt ist direkt aus der Swap-Datei lesbar |
| Byte-Reihenfolge | Plattformabhängig (entspricht dem Host-Vim-Build; typischerweise Little-Endian auf x86 und ARM) |
| Namenskonvention | `.dateiname.swp` (führender Punkt + `.swp`-Suffix); auf Unix-Systemen standardmäßig versteckt |
| Überlauf-Benennung | Wenn mehrere Sitzungen dieselbe Datei bearbeiten: `.swo`, `.swn`, `.swm`, … alphabetisch vergeben |
| Erkennung veralteter Dateien | Vim gleicht PID und Hostname im Header von Block 0 ab; warnt, wenn der aufgezeichnete Prozess nicht mehr läuft |
| Wiederherstellungsbefehl | `vim -r Dateiname` oder Drücken von „r“ bei der Wiederherstellungsaufforderung beim erneuten Öffnen in Vim |
| Neovim-Kompatibilität | Neovim liest und schreibt Vim-kompatible Swap-Dateien unter Verwendung desselben `b0VIM`-Header-Formats |
| Sicherheitshinweis | Swap-Dateien in öffentlich zugänglichen Web-Verzeichnissen legen Quellcode als Klartext offen, falls der Server Punkt-Dateien ausliefert |
| Veröffentlicht | 1991 (Vim 1.0); vi swap concept from 1970s ex/vi |
| Neueste Version | Vim 9.1 (2024) swap format; compatible block-based format since Vim 6 |
| Spezifikation | github.com |
SWP-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu SWP-Dateien.