1. 命令简介dpkg‑split 是 Debian Linux 及其衍生发行版如 Ubuntu中的一个工具用于将大型 Debian 软件包.deb 文件分割成多个较小的文件以便于存储或传输例如通过容量受限的介质。同时该工具也支持将已分割的文件重新合并为原始的完整软件包。2. 语法格式bash运行dpkg-split [选项]... [操作] [参数]...基本操作模式-s, --split 完整软件包 [前缀]执行分割操作。 -j, --join 分块文件模式...执行合并操作。 -I, --info 分块文件...显示分块文件的详细信息。 -l, --listq列出等待合并的分块文件队列。 -a, --auto 分块文件...自动将分块文件排队并尝试自动合并。 -Q, --npquiet当执行 --auto 操作但队列未形成完整包时不显示警告信息。 --depotdir 目录指定用于存放排队分块文件的目录默认为 /var/lib/dpkg。3. 常用选项及说明表格选项长格式说明-S 尺寸--partsize 尺寸设置分割后每个分块文件的最大尺寸单位字节。支持 k, M, G 后缀分别代表 KiB, MiB, GiB。默认值为 450 MiB (450 * 1024 * 1024 字节)。-o 文件--output 文件指定输出文件。在 --split 模式下指定的是分块文件名的前缀在 --join 模式下指定的是合并后完整软件包的文件名。-s 完整包--split 完整包将指定的完整 .deb 软件包分割成多个分块文件。-j 模式--join 模式将匹配指定 shell 通配符模式的所有分块文件合并成一个完整的软件包。-I 分块文件--info 分块文件显示指定分块文件的详细信息包括包名、版本、分块数量、当前分块序号、总大小等。-l--listq列出当前在合并队列中等待的分块文件信息。-a 分块文件--auto 分块文件将一个或多个分块文件放入自动合并队列。如果队列中凑齐了某个包的所有分块则自动合并并生成完整包。-Q--npquiet与 --auto 联用当分块文件被加入队列但未触发自动合并时不输出警告信息。-d, -dscard--discard已弃用。此选项在旧文档中可能被提及用于 “丢弃不匹配的部分”但在现代 dpkg‑split 版本中已无实际作用或已被移除。合并操作会自动验证分块是否属于同一个包。-?, -h--help显示帮助信息。--version显示版本信息。4. 示例用法4.1 分割软件包将 large‑package.deb 分割成多个最大为 460 KiB 的分块文件。bash运行dpkg-split -S 460k -s large-package.deb执行后会生成类似 large‑package.deb.1of3, large‑package.deb.2of3 的文件。4.2 指定输出前缀分割分割 bigapp_1.0_all.deb并指定分块文件的前缀为 bigapp‑part。bash运行dpkg-split -s bigapp_1.0_all.deb -o bigapp-part将生成 bigapp‑part.1ofN, bigapp‑part.2ofN 等文件。4.3 合并分块文件将当前目录下所有以 foo 开头的分块文件合并。bash运行dpkg-split -j foo*或者明确指定所有分块文件bash运行dpkg-split -j foo.deb.1of3 foo.deb.2of3 foo.deb.3of34.4 显示分块文件信息查看一个分块文件的元数据。bash运行dpkg-split -I large-package.deb.1of3输出示例plaintextPackage: large-package Version: 1.0-1 ... File: large-package.deb Part: 1 of 3 Length: 471040 bytes ...4.5 使用自动合并队列将分块文件放入队列系统会在集齐所有分块时自动合并。bash运行dpkg-split -a large-package.deb.1of3 dpkg-split -a large-package.deb.2of3 # 当放入第三个分块时会自动触发合并 dpkg-split -a large-package.deb.3of3合并后的完整包默认保存在 /var/lib/dpkg 目录下。4.6 查看合并队列列出当前在等待合并队列中的所有分块。bash运行dpkg-split -l5. 注意事项分块命名规则默认生成的分块文件名为 原始包名.NofM其中 N 是当前分块序号M 是总分块数。合并时依赖此命名中的元信息但使用 -j 通配符合并时工具会读取每个分块文件内部的元数据来确保正确性因此重命名分块文件通常不会影响合并。完整性验证在合并时dpkg‑split 会校验所有分块的 MD5 校验和确保数据完整且来自同一个原始软件包。权限与目录使用 --auto 操作需要将分块文件放入系统队列目录默认 /var/lib/dpkg这通常需要 root 权限。手动 --split 和 --join 操作在用户目录下进行则无需特殊权限。使用场景该工具主要用于处理非常罕见的、超过单个存储介质容量的大型软件包或者用于通过限制大小的传输通道分发软件包。在现代高速网络和大容量存储环境下其使用频率较低但在特定场景中仍然有用。分块大小选择设置分块大小时应考虑到目标介质的容量限制如 CD‑ROM、USB 驱动器或网络传输包大小但避免设置过小导致分块数量过多影响管理效率。Linux 学习资料 https://pan.baidu.com/s/1A6qqBk2ViE_Le2cQjSowkQ?pwd7uz8