# Nulcleaner

> Находит и удаляет зарезервированные файлы NUL в Windows, созданные при использовании /dev/null в Git Bash. В автономном режиме (headless) или с GUI.

- Skill: `ellmos-ai/nulcleaner-5` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ellmos-ai/nulcleaner-5`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ellmos-ai/nulcleaner-5/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ellmos-ai (https://skillmd.com/u/ellmos-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ellmos-ai/nulcleaner-5

---


<img src="banner.png" width="100%" alt="nulcleaner banner">

> **Русский** — Официальная русская версия `nulcleaner`.

# nulcleaner - Windows NUL File Cleanup (Русский)

## Проблема

При использовании `/dev/null` в командах Git Bash в Windows (например, `> /dev/null`) вместо перенаправления в никуда в текущем каталоге создается **реальный файл с именем `nul`**. Windows резервирует "NUL" в качестве имени устройства, поэтому такие файлы нельзя удалить обычным способом.

Этот инструмент находит и удаляет такие файлы NUL с использованием расширенного пути UNC (`\\?\`).

---

## Режимы

| Режим | Описание |
|------|-------------|
| `scan` | Рекурсивное сканирование каталога на наличие файлов NUL |
| `delete` | Поиск и удаление файлов NUL |
| `gui` | Графический интерфейс с выбором файлов |

---

## Использование CLI

```bash
# Только сканирование (показывает найденные файлы NUL) (Русский)
python nulcleaner.py scan /path/to/directory

# Сканирование и удаление (Русский)
python nulcleaner.py delete /path/to/directory

# Запуск режима GUI (Русский)
python nulcleaner.py gui
```

---

## Автономный API (для интеграции)

Инструмент также предоставляет Python API для автономной работы (headless):

```python
from nulcleaner import clean_nul_files_headless

result = clean_nul_files_headless("/path/to/directory", verbose=True)
print(f"Found: {result['found']}, Deleted: {result['deleted']}")
```

**Возвращаемое значение:** `{'found': int, 'deleted': int, 'errors': list}`

---

## Технические детали

- Использует расширенный путь UNC (`\\?\`) для удаления зарезервированных имен файлов Windows
- Рекурсивное сканирование с помощью `os.walk()`
- Графический интерфейс на tkinter (без внешних зависимостей)
- Работает только в Windows (где возникает проблема)

---

## Предотвращение

Лучше полностью избегать использования `/dev/null` в Git Bash. Вместо этого:
- Просто опускайте вывод
- Используйте `2>&1` для перенаправления stderr
- Обращайте внимание на совместимость с Windows в шелл-скриптах

