我们传输一个大文件时,有时网络比较慢,需要花费很长时间才能传输完成,或者传输的过程中,网络不稳定,有可能导致此次传输失败,针对这种情况,我们可以把大文件切分成小文件,再逐个的传输到目的地,最后再把它们合并成一个文件
小文件传输有什么优点呢?当出现网络闪断导致传输失败了,也只需要重新传输失败的一个文件,由于文件比较小,重新传输相对大文件要快很多,另外,切割成小文件,可以增加传输的并发量,也就是说多个小文件同时传输,比传输单个文件速度更快
Linux下切割文件的命令是 split
合并文件可以使用 cat
命令,下面将介绍这两个命令的使用以及切割和合并文件的方法
语法
split
命令的语法如下:
split [OPTION]... [INPUT [PREFIX]]
INPUT 表示标准输入或者文件
PREFIX 表示大文件分割后产生的小文件名字的前缀,默认是小写字母 x
,前缀后跟一组字符 , 按照类似 aa
、ab
、ac
字母顺序组成一个一个的文件名,比如:切割成三个文件,它们的文件名默认就是 xaa、 xab、 xac
OPTION 表示命令的选项,比如:按字节切割文件,按文件行切割文件等,下面列出了一些常用的选项
选项 | 说明 |
---|---|
-l | 每个文件都包含指定的行数 |
-b | 生成指定大小的文件,单位:字节 |
-a | 文件名后缀的长度,默认是2 |
-d | 文件名后缀使用数字而不是默认的字母 |
-n | 生成指定数量的文件 |
-e | 禁止生成长度为 0 的文件 |
–verbose | 创建文件时输出日志 |
切割文件实例
下面来看几组 split
命令的使用实例吧
- 按文件大小切割
首先创建一个 10M
大小的文件
关于如何创建指定大小的文件可以参考 1s 创建100G文件,最快的方法是?
[root@localhost split_test]# fallocate -l 10M myfile
[root@localhost split_test]# ls -lh
总用量 10M
-rw-r--r-- 1 root root 10M 9月 3