feat: Add --max-depth option and safe symlink handling (v1.2.0)
## Neue Features - **--max-depth N**: Begrenzt Rekursionstiefe auf N Ebenen (erfordert -r) - Nützlich für sehr tiefe Verzeichnisbäume (z.B. node_modules) - Verhindert unnötige Traversierung tiefer Strukturen - **Explizites Symlink-Handling**: - Standard: Symlinks werden komplett übersprungen (sicher) - Mit --special: Nur Symlink-Namen werden bereinigt, Ziel bleibt unangetastet - follow_links(false) explizit gesetzt zur Vermeidung von Endlosschleifen - Verhindert unbeabsichtigte Änderungen außerhalb des Zielverzeichnisses - **Verbose Symlink-Logging**: Zeigt mit -v welche Symlinks übersprungen werden ## Tests - 5 neue Integration-Tests hinzugefügt: - test_max_depth_option - test_max_depth_requires_recursive - test_symlinks_default_behavior (Unix only) - test_symlinks_with_special_flag (Unix only) - test_symlinks_not_followed (Unix only) - Alle 30 Tests bestehen (25 bestehende + 5 neue) ## Dokumentation - README.md: Neue Beispiele und "Symlink Behavior" Sektion - CHANGELOG.md: v1.2.0 Eintrag mit allen Änderungen - man/ntu.1: --max-depth Option und SYMLINK BEHAVIOR Sektion - CLAUDE.md: Aktualisierte Code-Architektur Dokumentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
cf091f4d4b
commit
b84dd70f80
8 changed files with 228 additions and 7 deletions
34
README.md
34
README.md
|
|
@ -165,6 +165,12 @@ ntu -L
|
|||
|
||||
# List sequences with details
|
||||
ntu -L -v
|
||||
|
||||
# Limit recursion depth
|
||||
ntu -r --max-depth 3 /path/to/files
|
||||
|
||||
# Rename symlink names (but don't follow them)
|
||||
ntu -r --special /path/to/files
|
||||
```
|
||||
|
||||
**Note:** The following directories/files are automatically excluded:
|
||||
|
|
@ -218,11 +224,39 @@ ntu -L
|
|||
|
||||
# Sequenzen mit Details auflisten
|
||||
ntu -L -v
|
||||
|
||||
# Rekursionstiefe begrenzen
|
||||
ntu -r --max-depth 3 /pfad/zu/dateien
|
||||
|
||||
# Symlink-Namen bereinigen (aber nicht folgen)
|
||||
ntu -r --special /pfad/zu/dateien
|
||||
```
|
||||
|
||||
**Hinweis:** Die folgenden Verzeichnisse/Dateien werden automatisch ausgeschlossen:
|
||||
`.git`, `.svn`, `node_modules`, `.cache`, `__pycache__`
|
||||
|
||||
## Symlink Behavior / Symlink-Verhalten
|
||||
|
||||
By default, `ntu` **does not process symbolic links**:
|
||||
- Symlinks are **skipped** (not renamed, not followed)
|
||||
- This prevents unintended changes outside the target directory
|
||||
- No risk of infinite loops from circular symlinks
|
||||
|
||||
With `--special` flag:
|
||||
- Symlink **names** are sanitized (e.g., `link to file` → `link_to_file`)
|
||||
- Symlinks are still **not followed** (targets remain unchanged)
|
||||
- Safe: only the link itself is renamed, not what it points to
|
||||
|
||||
**Standardmäßig verarbeitet `ntu` symbolische Links NICHT**:
|
||||
- Symlinks werden **übersprungen** (weder umbenannt noch gefolgt)
|
||||
- Dies verhindert unbeabsichtigte Änderungen außerhalb des Zielverzeichnisses
|
||||
- Keine Gefahr von Endlosschleifen durch zirkuläre Links
|
||||
|
||||
Mit `--special` Flag:
|
||||
- Symlink-**Namen** werden bereinigt (z.B. `link zu datei` → `link_zu_datei`)
|
||||
- Symlinks werden weiterhin **nicht gefolgt** (Ziele bleiben unverändert)
|
||||
- Sicher: nur der Link selbst wird umbenannt, nicht worauf er zeigt
|
||||
|
||||
## Configuration File / Konfiguration
|
||||
|
||||
Erstelle eine Datei `.NameToUnix.conf` im persönlichen Arbeitsverzeichnis z. B. mit folgendem Inhalt
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue