nulcleaner - Windows NUL-Datei Bereinigung
Das Problem
Wenn in Git Bash unter Windows /dev/null in Befehlen verwendet wird (z.B. > /dev/null),
entsteht anstatt einer Umleitung ins Nichts eine echte Datei namens nul im aktuellen
Verzeichnis. Windows reserviert "NUL" als Device-Name, weshalb diese Dateien nicht normal
geloescht werden koennen.
Dieses Tool findet und loescht solche NUL-Dateien ueber den erweiterten UNC-Pfad (\\?\).
Modi
| Modus | Beschreibung |
|---|---|
scan |
Verzeichnis rekursiv nach NUL-Dateien durchsuchen |
delete |
NUL-Dateien finden und loeschen |
gui |
Grafische Oberflaeche mit Dateiauswahl |
CLI Usage
# Nur scannen (zeigt gefundene NUL-Dateien)
python nulcleaner.py scan /pfad/zum/verzeichnis
# Scannen und loeschen
python nulcleaner.py delete /pfad/zum/verzeichnis
# GUI-Modus starten
python nulcleaner.py gui
Headless-API (fuer Integration)
Das Tool bietet auch eine Python-API fuer headless-Betrieb:
from nulcleaner import clean_nul_files_headless
result = clean_nul_files_headless("/pfad/zum/verzeichnis", verbose=True)
print(f"Gefunden: {result['found']}, Geloescht: {result['deleted']}")
Rueckgabe: {'found': int, 'deleted': int, 'errors': list}
Technische Details
- Nutzt den erweiterten UNC-Pfad (
\\?\) um Windows-reservierte Dateinamen zu loeschen - Rekursiver Scan mit
os.walk() - GUI mit tkinter (keine externen Dependencies)
- Funktioniert nur unter Windows (dort entsteht das Problem)
Praevention
Am besten /dev/null in Git Bash vermeiden. Stattdessen:
- Ausgabe einfach weglassen
2>&1fuer Stderr-Umleitung verwenden- In Shell-Skripten auf Windows-Kompatibilitaet achten