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系统中两种核心文件分割方案:

  1. split命令:简单直接的文件分割工具,支持按大小/行数/数量分割
  2. 7-Zip分割:归档+分割二合一,适合大文件传输和存储

选择建议:

  • 需要快速分割且不压缩时 → 用split
  • 需要压缩且分卷传输时 → 用7-Zip

这些工具在开发运维中都是高频操作,掌握后能显著提升处理大文件的效率。


原始标题:Splitting Files in Unix Systems | Baeldung on Linux