Реструктуризация вложенных иерархий папок в плоские, машиночитаемые структуры. На базе Bash с интеллектуальной логикой объединения.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add ellmos-ai/skills --skill ru --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ru?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ellmos-ai-skills-def931f3)More formats (shields.io, HTML) on the badges page.
---
name: folder-flattening
version: 1.0.0
type: tool
author: Lukas Geiger
created: 2026-03-12
updated: 2026-03-12
description: Реструктуризация вложенных иерархий папок в плоские, машиночитаемые структуры. На базе Bash с интеллектуальной логикой объединения.
standalone: true
anthropic_compatible: true
bach_compatible: false
bach_origin: true
category: utilities
tags: [folder, flattening, filesystem, bash, reorganization, cleanup]
language: ru
status: active
dependencies: {'tools': [], 'services': [], 'protocols': [], 'python': []}
provenance: {'origin': 'bach', 'origin_path': 'system/skills/workflows/ordner-flattening.md', 'origin_version': '1.0.0', 'origin_repo': 'github.com/ellmos-ai/bach', 'last_sync_from_origin': '2026-03-12', 'last_sync_to_origin': None, 'local_changes_since_sync': True}
---
<img src="banner.png" width="100%" alt="folder-flattening banner">
> **Русский** — Официальная русская версия `folder-flattening`.
# Рабочий процесс: Folder Flattening
Цель: Преобразовать вложенные структуры папок в плоскую, машиночитаемую структуру.
Преимущество: Больше никакого ручного перехода по каталогам — поиск через базу данных (`Verzeichnis.db`).
Дубликаты допускаются, если они оправданы тематически.
---
## Обзор фаз
| Фаза | Что происходит | Раздел скрипта |
|-------|-------------|----------------|
| 1 | Сплющивание (Flatten): Перенос всех подпапок на один уровень | `phase_flatten` |
| 2 | Сокращение (Shorten): Усечение длинных путей до последнего сегмента, объединение при конфликтах | `phase_shorten` |
| 3 | Очистка: Устранение множественных подчеркиваний (`___`), удаление концевого `_` | `phase_cleanup_underscores` |
| 4 | Группировка: Перемещение числовых папок, CD-папок и коротких имен в сборные папки | `phase_group_problematic` |
| 5 | Анализ триплетов: Скользящие группы по 3, кратчайшее имя как цель объединения | `phase_tripel_merge` |
| 6 | Объединение по формату медиа: Консолидация папок по типу файлов (шаблон) | `phase_media_merge` |
| 7 | Очистка: Удаление пустых папок | `phase_cleanup_empty` |
---
## Важные правила
### Сопоставление в анализе триплетов
- **Подстрока**: `Education` в `EducationalBrochures` -> объединить в `Education`
- **Множественное число/умлаут**: `Room` = `Rooms`, `Part` = `Parts`, `Book` = `Books`
- **Первое слово**: `Autism ADHD` совпадает с `Autism Career` (одинаковое начало)
### Минимальная длина
- Односложное имя без пробелов: **не менее 8 симво символов** (предотвращает случайное объединение `Hand`, `House`, `Form`)
- С пробелами (например, `ICF Catalog`): **от 3 символов OK**
- Это позволяет сохранить `ICF`, `ASD Women` и т.д.
### Перезапуск после объединения
После каждого объединения список папок перезагружается и перезапускается с целевой папки объединения.
Таким образом, например, `Autism` собирает все расширения перед тем, как двигаться дальше.
---
## Объединение по формату медиа (Система шаблонов)
Фаза 6 использует массив шаблонов `MEDIA_TYPES`. Каждая запись определяет:
- Целевую папку (с префиксом `_`)
- Расширения файлов, относящиеся к этому типу
```bash
MEDIA_TYPES=(
"_Audio|mp3|m4a|wav|flac|ogg|wma|aac|opus|aiff"
"_Video|mp4|avi|mkv|mov|wmv|flv|webm|m4v|mpg|mpeg|3gp"
"_Images|jpg|jpeg|png|gif|bmp|tiff|tif|webp|svg|ico|heic|heif|raw|cr2|nef"
# Extensible:
# "_Spreadsheets|xlsx|xls|csv|ods"
# "_Presentations|pptx|ppt|odp"
# "_Code|py|js|ts|sh|bat|ps1"
# "_CAD|dwg|dxf|step|stl"
# "_3D|obj|fbx|blend|gltf|glb"
# "_Fonts|ttf|otf|woff|woff2"
)
```
Перемещаются только папки, содержащие **исключительно** файлы одного типа.
Папки с подпапками пропускаются.
### Добавление нового типа медиа
Просто добавьте новую строку в массив `MEDIA_TYPES`:
```bash
"_TargetFolder|ext1|ext2|ext3"
```
---
## Выполнение
```bash
# Complete run:
cd /path/to/target/directory
bash ordner_flattening_komplett.sh
# Or individual phases:
bash ordner_flattening_komplett.sh --phase flatten
bash ordner_flattening_komplett.sh --phase tripel
bash ordner_flattening_komplett.sh --phase media
bash ordner_flattening_komplett.sh --phase cleanup
```
---
## Опытные данные (Сессия 2026-01-26)
- Старт: 206 папок + 252 отдельных файла, ~5600 вложенных подпапок
- После сплющивания: ~2200 папок на одном уровне
- После сокращения и очистки: ~2005 папок
- После группировки (числа, CD): ~2005 -> созданы сборные папки
- После триплетов v1: ~1561 папка
- После триплетов v2 (правило 8 символов): дальнейшее сокращение
- Фаза медиаформатов: Папки аудио/видео/изображений консолидированы
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!