1. 引言
本文将介绍在Unix系统中分割文件的几种实用方法。所有命令均在Bash环境下测试,但具备跨平台兼容性。对于有经验的开发者来说,这些基础操作应该不陌生,我们直接切入正题。
2. 使用split命令
split
是Unix/Linux系统中最常用的文件分割工具,支持多种分割模式:
按大小分割文件
最直接的方式是按指定大小分割文件。假设我们有一个50MB的文本文件,需要拆分成5个10MB的片段:
split -b 10M large_file.txt part_
执行后会生成以下文件:
part_aa
part_ab
part_ac
part_ad
part_ae
踩坑提示:默认使用字母后缀(aa, ab, ac...),添加
-d
参数可切换为数字后缀(00, 01, 02...)
-b
参数支持多种单位:
- 二进制单位:K, M, G, T, P, E, Z, Y(基于1024)
- 十进制单位:KB, MB, GB...(基于1000)
按指定数量分割
需要将文件拆分成固定数量的等分片段时:
split -n 2 large_file.txt part_
这将生成两个25MB的文件(50MB ÷ 2):
part_aa
part_ab
按行数分割文本文件
处理文本文件时,按行分割更实用:
split -l 10000 large_file.txt part_
具体生成文件数取决于原文件总行数。
合并文件
使用cat
命令轻松恢复原始文件:
cat part_* > large_file.txt
3. 使用7-Zip分割文件
7-Zip在创建归档时支持分割功能,特别适合处理大文件:
创建分卷归档
将50MB文件分割为10MB的分卷:
7z a -v10m -mx0 archive.7z large_file.txt
参数说明:
-v10m
:指定分卷大小(10MB)-mx0
:禁用压缩(仅分割)
执行后生成:
archive.7z.001
archive.7z.002
archive.7z.003
archive.7z.004
archive.7z.005
提取分卷归档
只需解压第一个分卷:
7z x archive.7z.001
7-Zip会自动按顺序处理所有分卷,无需手动指定后续文件。
4. 结论
本文介绍了Unix系统中两种核心文件分割方案:
- split命令:简单直接的文件分割工具,支持按大小/行数/数量分割
- 7-Zip分割:归档+分割二合一,适合大文件传输和存储
选择建议:
- 需要快速分割且不压缩时 → 用split
- 需要压缩且分卷传输时 → 用7-Zip
这些工具在开发运维中都是高频操作,掌握后能显著提升处理大文件的效率。