飞牛 OS 专属文件夹压缩工具:功能与部署指南
一、工具简介
昨天飞牛更新了网盘自动加密并同步文件的功能,极大的方便了文件多重备份的需求。但是如果一个文件夹里面有很多个子文件夹或者文件,在上传到网盘后,网盘往往会对这些文件的转存分享作出限制,往往还得开会员才能分享转存。为此开发的 folder_converter_flyos_custom.py
,是一款专为飞牛 OS 设计的文件夹处理工具,支持 “一键压缩原文件 + 生成结构一致的 TXT 索引文件夹”,适配飞牛 OS 的文件系统与权限机制,尤其适合含有大量子文件夹的文件批量处理。
二、核心功能
1. 文件夹结构无损保留
- 遍历源文件夹所有层级(包括子目录),在目标路径下重建完全一致的目录结构,与原文件夹层级 1:1 对应
- 自动跳过飞牛 OS 中的符号链接文件,避免重复计算或路径异常导致的结构错乱
- 支持含特殊字符的文件夹名称(如中文、空格、下划线),兼容飞牛 OS 编码格式,确保结构完整性
2. 空 TXT 文件批量生成(便于查找)
- 对源文件夹中的每个文件,生成对应空 TXT 文件,命名规则为:
文件名@扩展名.txt
- 示例:原文件
report.pdf
→ 生成 report@pdf.txt
;无扩展名文件 readme
→ 生成 readme@no_ext.txt
- TXT 文件与源文件目录结构完全对齐,上传飞牛网盘后可快速通过 TXT 文件名定位目标文件,无需打开压缩包
- 空 TXT 文件体积可忽略,不占用额外网盘空间,解决 “多文件转存分享限制” 问题

3. 100GB 级分卷压缩(一键处理大文件)
- 自动判断分卷:计算源文件夹总大小,≤100GB 生成单压缩包,>100GB 自动拆分,无需手动分割
- 灵活命名规则:
- 单压缩包:
源文件夹名_时间戳.zip
(示例:XX项目_2025-09-05_17-45-30.zip
)
- 分卷压缩:
源文件夹名_part1_时间戳.zip
、源文件夹名_part2_时间戳.zip
...
- 超大文件兼容:单个文件>100GB 时,自动为该文件创建独立分卷,避免压缩损坏或网盘上传失败
- 压缩格式优化:采用 ZIP_DEFLATED 压缩算法,平衡压缩率与速度,适配飞牛网盘上传速度与存储需求
4. 详细日志与错误处理
- 生成带时间戳的完整日志(命名:
文件夹转换日志_时间戳.log
),记录:
- 目录创建、文件生成、压缩进度等关键操作,便于追溯处理过程
- 权限不足、路径不存在、磁盘空间不足等错误信息,快速定位问题
- 日志文件自动保存在目标文件夹的子目录中,随 TXT 文件夹一同备份,便于后续排查
- 终端实时输出进度(如「压缩中添加文件」「分卷完成」),直观掌握处理状态,避免等待焦虑
三、关键参数说明
参数类型 |
输入时机 |
说明 |
示例(飞牛 OS 路径) |
源文件夹路径 |
第一步「设置源文件夹」 |
需处理的原始文件夹路径(含子目录和文件),必须为飞牛 OS 可访问的目录,如 XX 项目文件夹 |
/home/admin/Documents/XX项目 |
目标文件夹路径 |
第二步「设置自定义输出」 |
存放生成的 TXT 文件夹和压缩包的根路径,压缩包直接存于此,TXT 文件夹以源文件夹名命名 |
/home/admin/Desktop/XX项目备份 |
配置常量(可选修改代码)
位于代码顶部,适合根据需求调整,无需复杂编程基础:
python
运行
SPLIT_SIZE = 100 * 1024 * 1024 * 1024 # 分卷阈值(默认100GB,可改为50GB、200GB等)
SPLIT_PART_PREFIX = "part" # 分卷前缀(默认"part",可改为"卷"等中文标识)
四、飞牛 OS 部署与运行步骤(本地直接运行,无依赖)
1. 环境准备
飞牛 OS 默认预装 Python 3.6+,工具基于 Python 标准库开发,无需额外安装依赖,验证 Python 环境是否正常:
bash
# 打开飞牛OS终端,执行以下命令,显示Python 3.x.x版本即正常
python3 --version
2. 工具获取与存放
将 folder_converter_flyos_custom.py
文件保存到飞牛 OS 任意目录(建议放在常用工具文件夹,如 /home/admin/飞牛工具
),获取方式:
附件:folder_converter_flyos_custom .rar
3. 具体运行步骤
-
打开终端并进入工具目录:
打开飞牛 OS 终端,通过 cd
命令进入工具所在文件夹(示例路径为 /vol1/1000/Python
,需替换为实际路径):

bash
cd /vol1/1000/Python
-
赋予文件执行权限(首次运行需执行,后续无需重复操作):
确保工具文件有可执行权限,避免因权限问题无法启动:
bash
chmod +x folder_converter_flyos_custom.py
-
启动工具(根据文件大小选择命令):
-
若处理普通文件(如 XX 项目文档,体积<50GB):
bash
python3 folder_converter_flyos_custom.py
-
若处理大文件 / 系统目录文件(如 XX 项目素材库,体积>100GB):
建议加 sudo
提权,避免因文件权限不足导致处理中断:
bash
sudo python3 folder_converter_flyos_custom.py
-
按提示输入参数:
-
第一步:终端提示 “请输入 / 拖放源文件夹路径”,将需要处理的文件夹(如 XX 项目文件夹)拖到终端,删除自动生成的引号后回车,示例输入:
plaintext
/home/admin/Documents/XX项目
-
第二步:终端提示 “请输入 / 拖放自定义目标路径”,将存放结果的文件夹(如 XX 项目备份文件夹)拖到终端,删除引号后回车,示例输入:
plaintext
/home/admin/Desktop/XX项目备份
-
等待执行与查看结果:
- 工具运行过程中,终端会实时显示 “目录创建”“文件生成”“压缩进度” 等信息,分卷压缩时会提示每个分卷的大小与路径
- 执行完成后,终端会显示处理统计(如 “创建目录 10 个,处理文件 50 个”),按「回车键」关闭终端
- 结果位置:在目标文件夹(如
/home/admin/Desktop/XX项目备份
)中,可看到:
- TXT 文件夹:以源文件夹名命名(如
XX项目
),内部结构与原文件夹一致,文件均为 文件名@扩展名.txt
格式
- 压缩包:直接存于目标文件夹根目录,按命名规则生成(如
XX项目_2025-09-05_17-45-30.zip
或分卷文件)
- 日志文件:存于 TXT 文件夹内,命名为
文件夹转换日志_时间戳.log
五、常见问题与注意事项
1. 权限相关问题
- 问题现象:终端提示 “PermissionError:[Errno 13] Permission denied”(权限不足)
- 解决方法:
-
若本地运行未加 sudo
,重新执行命令时添加 sudo
(如 sudo python3 folder_converter_flyos_custom.py
)
-
若文件夹本身权限不足,执行以下命令开放权限(替换路径为源 / 目标文件夹路径):
bash
chmod -R 755 /home/admin/Documents/XX项目
2. 磁盘空间不足问题
- 问题现象:终端提示 “OSError:[Errno 28] No space left on device”(磁盘空间不足)
- 解决方法:
- 查看飞牛 OS 磁盘剩余空间:执行
df -h
命令,找到目标文件夹所在分区(如 /home
分区)
- 清理目标分区无用文件,确保剩余空间≥源文件夹总大小的 1.2 倍(分卷压缩需临时缓存)
- 若空间仍不足,更换目标路径到剩余空间充足的分区(如外接硬盘)
3. 分卷压缩包解压方法(飞牛 OS 中)
将分卷压缩包上传飞牛网盘后,下载到本地解压时,需将所有分卷放在同一目录,避免解压失败:
bash
# 方法1:使用系统自带unzip命令(推荐,自动识别分卷)
unzip XX项目_part1_2025-09-05_17-45-30.zip
# 方法2:使用7z命令(需先安装,支持更多压缩格式)
sudo apt install p7zip-full # 安装7z工具
7z x XX项目_part1_2025-09-05_17-45-30.zip
4. 日志查看与问题排查
若工具运行异常,可通过日志文件定位问题:
-
日志路径:目标文件夹/源文件夹名/文件夹转换日志_时间戳.log
(示例:/home/admin/Desktop/XX项目备份/XX项目/文件夹转换日志_2025-09-05_17-45-30.log
)
-
查看命令:在终端执行以下命令(替换为实际日志路径):
bash
cat /home/admin/Desktop/XX项目备份/XX项目/文件夹转换日志_2025-09-05_17-45-30.log
-
重点关注:日志中带 “错误”“失败” 的条目,可快速定位权限、路径、空间等问题
六、适用场景
- 飞牛备份到网盘:将多文件 / 子文件夹的 XX 项目,压缩为 1 个或多个压缩包,搭配结构一致的 TXT 文件夹,避免网盘转存分享限制,无需开会员即可高效分享
- 大文件批量处理:处理 XX 项目中的设计素材、视频文件等大体积内容,自动分卷适配网盘上传大小限制,减少上传失败概率
- 文件结构索引:生成的 TXT 文件夹可单独上传网盘,作为文件结构索引,通过 TXT 文件名快速定位目标文件,无需下载完整压缩包
- 跨设备迁移:在网盘进行分享转存时,压缩包 + TXT 文件夹的组合可减少传输文件数量,提升迁移效率,避免文件丢失
如需调整分卷大小、TXT 命名规则等,可直接修改代码顶部的配置常量,工具已预留灵活扩展接口,无需复杂开发即可适配更多飞牛 OS 使用场景。