中文 —
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 |
重要规则
三元组匹配规则
- 子字符串:
EducationalBrochures中的Education-> 合并至Education - 复数/元音变音:
Room=Rooms,Part=Parts,Book=Books - 首个单词:
Autism ADHD匹配Autism Career(前缀相同)
最小长度
- 无空格的单词名称:至少 8 个字符(防止将
Hand、House、Form等误合并) - 包含空格(例如
ICF Catalog):3 个字符起即可 - 这允许保留
ICF、ASD Women等名称
合并后重新开始
每次合并后,文件夹列表将重新加载,并从合并目标位置重新开始。
这样,例如 Autism 会在继续之前汇集所有扩展相关内容。
媒体格式合并(模板系统)
阶段 6 使用模板数组 MEDIA_TYPES。每个条目定义:
- 目标文件夹(带有
_前缀) - 属于该类型的文件扩展名
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 数组中添加一行新内容:
"_TargetFolder|ext1|ext2|ext3"
执行
# 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 字符规则)后:进一步减少
- 媒体格式阶段:音频/视频/图片文件夹已整合