linux怎么把大文件拆分
linux怎么把大文件拆分详细介绍
在 Linux 中拆分大文件可以使用 split、dd 等命令,以下是常用方法:
方法一:使用 split 命令(推荐,简单灵活)
split 命令可按文件大小或行数拆分文件,支持文本和二进制文件,适合大多数场景。
1. 按文件大小拆分(例如拆分为 100MB 每个文件)
bash
100M 原文件名 拆分后前缀名
-b:指定每个拆分文件的大小,单位支持k(KB)、M(MB)、G(GB)等。- 示例:将
large_file.iso拆分为每个 100MB 的文件,前缀为part_:bash100M large_file.iso part_拆分后文件名为
part_aa、part_ab、part_ac等(默认后缀为两位字母)。
2. 按行数拆分(例如每 1000 行一个文件)
bash
原文件名 拆分后前缀名
-l:指定每个文件的行数。
3. 自定义后缀格式(数字后缀,三位长度)
bash
100M 原文件名 拆分后前缀名
-d:使用数字后缀(默认是字母)。-a 3:后缀长度为 3 位(如001、002)。
方法二:使用 dd 命令(适合二进制文件,按固定块拆分)
dd 命令按字节或块拆分,适合精确控制拆分大小,尤其是二进制文件(如磁盘镜像)。
按固定大小拆分(例如每个文件 100MB)
bash
原文件名 拆分后文件名1 100M原文件名 拆分后文件名2 100M
if:输入文件。of:输出文件。bs:每个块的大小。count=1:读取 1 个块(第一个文件)。skip=1:从输入文件的第 1 个块后开始读取(第二个文件)。seek=1:从输出文件的第 1 个块后开始写入(避免覆盖)。
更高效的循环拆分(自动生成多个文件):
bash
100Mlarge_file.iso
part_
$split_size
stat %s " / $block_size +
" " " " " >/dev/null
方法三:使用 csplit 命令(按模式或位置拆分)
csplit 可按正则表达式或固定位置拆分文本文件(较进阶)。
按文件大小拆分(同 split,但支持更复杂模式):
bash
原文件名
-b "%03d":数字后缀(三位,如001)。-z:拆分空文件不保留。$((100*1024*1024)):指定每个文件大小(字节,100MB)。
合并拆分后的文件(通用方法)
使用 cat 命令合并所有拆分文件:
bash
拆分后前缀名* 合并后的文件名
例如合并以 part_ 开头的文件:
bash
part_* merged_file.iso
912 part_* > merged_file.iso
注意事项
- 单位问题:
split的-b支持100M(兆字节)、100m(兆比特),建议用大写M表示 MB。 - 后缀格式:默认后缀为两位字母(
aa,ab),用-d切换为数字后缀(00,01),-a可指定后缀长度(如-a 4为四位)。 - 权限问题:确保目标目录有写入权限。
根据需求选择合适的工具,split 是最简便的通用方案,dd 适合二进制文件精确拆分。