前言
当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。
1. 分割文件
文件分割可以使用split命令,该即支持文本文件分割,又支持二进制文件分割;而合并文件可以使用cat命令。
1.1 文本文件分割
分割文本文件时,可以按文件大小分割,也可以按文本行数分割。
按文件大小分割
按文件大小分割文件时,需要以-C参数指定分割后的文件大小:
1 | $ split -C 100M large_file.txt stxt |
如上所示,我们将大文件large_file.txt按100M大小进行分割,并指定了分割后文件前缀stxt;当不指定前缀时,split会自动对分割文件进行命名,一般会以x开头。
按行分割
文本文件还可以以行为单位进行分割,以行数进行分割时会忽略文件大小,并以-l参数指定分割后文件的行数:
1 | $ split -l 1000 large_file.txt stxt |
1.2 二进制文件分割
二进制文件分割类似于按大小分割文本文件,不同的是以-b参数来指定分割后的文件大小:
1 | $ split -b 100M data.bak sdata |
2. 文件合并
文件合并使用cat命令,上面几种方式分割的文件都可以使用cat命令合并。
cat命令合并分割文件:
1 | $ cat stxt* > new_file.txt |
3. 命令格式
3.1 split命令说明
1 | split命令格式如下: |
3.2 cat命令说明
cat是Linux下使用频率较高的命令之一,该令详细介绍:
cat连接文件并打印到标准输出设备上
cat命令的常见使用场景有:
显示文件内容:
1 | $ cat filename |
创建一个空文件:
1 | $ cat > filename |
文件合并:
1 | $ cat file1 file2 > file |
4. 分割二进制文件
1 | // 使用split命令,-b 4000M 表示设置每个分割包的大小,单位还是可以k |
1 | 执行命令后,生成压缩包如下: |
4.1 解压命令和分割命令合并成一步来执行
1 | // 采用管道,其中 - 参数表示将所创建的文件输出到标准输出上 |
4.2 分割后的压缩包解压命令如下
1 | cat cm-11.tar.gz.* | tar -zxv |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!
