在日常运维和开发工作中,我们经常需要处理大文件——无论是传输超大日志、备份数据库,还是上传受大小限制的资源文件,都可能遇到单文件过大带来的不便。Linux系统自带的split和cat命令组合,可以高效地完成文件的切割与合并,无需安装任何第三方工具。本文将详细讲解这两个命令的用法、参数和实战技巧。
基本语法:split [选项] [输入文件] [输出前缀]。split命令会读取输入文件,按照指定规则将其拆分为多个小文件。如果不指定输入文件,则从标准输入读取;如果不指定输出前缀,默认使用x作为前缀,后缀为两位字母(如xaa、xab、xac……)。
按文件大小切割(-b):这是最常用的切割方式。-b参数指定每个输出文件的大小,支持K、M、G等单位。例如split -b 100M largefile.iso part_会将文件按每100MB切割,生成part_aa、part_ab等文件。
按行数切割(-l):适用于文本文件,-l参数指定每个输出文件包含的行数。例如split -l 5000 access.log log_会将日志文件按每5000行切割。
按份数均分(-n):如果不确定每块大小,只想将文件平均分成N份,可以使用-n参数。例如split -n 5 data.csv part_会将文件均匀拆分为5个小文件。
保持行完整性切割(-C):-C参数与-b类似,但会确保不会在行的中间截断,每个输出文件的大小不超过指定值的同时保持每行完整。例如split -C 100M access.log log_。
自定义后缀格式:默认后缀是字母(aa、ab),可通过-d参数改为数字后缀(00、01),通过-a参数指定后缀长度。例如split -b 10M -d -a 3 file.iso part_会生成part_000、part_001等文件。
显示切割过程(--verbose):处理大文件时,添加--verbose参数可以实时显示每个分块的创建过程,方便跟踪进度。
基本语法:cat [文件列表] > [输出文件]。cat(concatenate的缩写)命令的核心功能是将多个文件的内容按顺序连接并输出。通过重定向符>,可以将合并结果写入新文件。
合并split切割的文件:这是cat最常见的合并场景。使用通配符匹配所有分块文件,例如cat part_* > restored_file.iso即可将所有以part_开头的分块文件按名称顺序合并为原始文件。由于split生成的后缀(字母或数字)天然支持排序,通配符展开后的顺序就是正确的拼接顺序。
合并并解压:如果原始文件是先压缩再切割的,可以在合并的同时解压:cat part_* | tar -zxv,通过管道直接将合并后的数据流送入解压命令,无需生成中间文件,节省磁盘空间。
带进度条的合并:对于超大文件合并,可以安装pv工具来显示进度:pv part_* > restored_file.iso,会实时显示已处理的数据量和速度。
cat的其他常用功能:除了合并文件,cat还常用于查看文件内容(cat filename)、显示行号(cat -n filename)、创建小文件(cat > newfile后输入内容按Ctrl+D保存)、追加内容(cat >> existingfile)等。
完整切割合并流程:以切割一个2GB的数据库备份文件为例——切割命令为split -b 500M -d -a 2 backup.sql part_,生成part_00到part_03四个文件;传输完成后在目标机器合并:cat part_* > backup.sql;最后验证完整性:md5sum backup.sql,与源文件的MD5值比对确认一致。
磁盘空间预留:切割和合并操作都需要额外的磁盘空间,建议至少预留原文件大小2倍以上的可用空间,避免操作中途因空间不足而失败。
不要修改分块文件名:合并前不要手动重命名分块文件,否则通配符匹配的顺序可能被打乱,导致合并后的文件内容错乱。合并前先用ls确认文件列表是否齐全。
二进制与文本文件通用:split和cat的组合对二进制文件(如镜像、压缩包)和文本文件同样适用,因为它们操作的是原始字节流,不涉及编码转换。
FAT32文件系统限制:如果需要在FAT32格式的U盘上传输文件,由于FAT32单文件上限为4GB,可以提前用split -b 3900M将文件切割到4GB以内再进行传输。
![]()
split和cat是Linux处理大文件的黄金搭档。split负责按大小、行数或份数将大文件精准切割为多个小文件,支持数字后缀、行完整性保护等灵活配置;cat则通过通配符匹配和重定向,一行命令即可将分块文件按正确顺序还原为原始文件。两者配合使用,配合md5sum校验完整性,可以安全高效地解决大文件传输、存储和备份的各种难题。掌握这对命令组合,是每位Linux用户的基本功。
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com