Linux 使用 Split 命令分割文件与合并

发布时间 2023-03-29 16:32:52作者: Maolic

Linux Split 命令用于将大文件分割成较小的文件(默认每1000行切割成一个小文件),比如在网络质量不佳的情况下需要传输一些较大的视音频文件、程序文件等内容,分割后可以方便我们进行处理和传输。

简单使用

最常用最直接的使用命令,比如把日志文件按100M来拆分。

split -b 100M out.log out.log.

 

我这里把一个331M的日志文件拆分后效果如上图所示,默认是以字母来标记分片的,如果想要以数字为结尾的,如“XXX.xx.01”,可以加上“-d”的参数。

split -b 100M -d out.log out.log.

 

也可以使用命令指定把文件分割成 n 份,如

split -n 5 -d out.log out.log.

 

对于日志文件其实可以压缩,这样体积可以更小,压缩后的文件我们可以使用管道命令同时对其分片,更加便于传输。这里需要注意的是,如果你熟悉 tar 命令则可以很快理解且不会忘记参数后面的“-”,通常情况下这里填写的是压缩后文件的名称,这里使用“-”与之对应管道后面split命令中的“-”的是相互对应的标准输出文件,所以命令中两个“-”不可遗漏,也不可以用同一个名称代替。当然这里使用管道也可以使用两个命令分开执行,分开执行则无需标准输出了,只不过看起来更加优雅一些。

tar -zcf - out.log | split -b 10M - out.log.tar.gz.

 

文件合并

那能拆分当然要会合并,就和小时候拆家里的电话机什么的,装回去多了零件可不行,这里使用 cat 命令就可以简单快速的“组装”回去了。这里以上方第一个示例为例,合并出来的名称为“out_merge.log”。

cat out.log.* > out_merge.log

 

MD5校验

文件拆分合并后,保险起见我们应当对其计算一下MD5,保证数据传输的一致性,我们没办法保证文件在传输过程中是否损坏,所以尤其是对一些分片数量多,文件体积大的文件合并后应当做一下校验。这里对合并文件前后md5计算,结果如下图所示。

md5sum out.log
md5sum out_merge.log

 

小结

Split 命令还有其他一些参数,因平时使用较少未列出,有兴趣可以通过 “split --help” 命令查看更加详细的说明,当然上述提及的分割大小可以按自己的需求,使用其他大小单位(K,M,G等)均可。