Loading... 当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输。这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件。 ## 1. 分割文件 文件分割可以使用`split`命令,该即支持文本文件分割,又支持二进制文件分割;而合并文件可以使用`cat`命令。 ### 1.1 文本文件分割 分割文本文件时,可以按文件大小分割,也可以按文本行数分割。 **按文件大小分割** 按文件大小分割文件时,需要以`-C`参数指定分割后的文件大小: ``` $ split -C 100M large_file.txt stxt ``` 如上所示,我们将大文件`large_file.txt`按`100M`大小进行分割,并指定了分割后文件前缀`stxt`;当不指定前缀时,`split`会自动对分割文件进行命名,一般会以`x`开头。 **按行分割** 文本文件还可以以行为单位进行分割,以行数进行分割时会忽略文件大小,并以`-l`参数指定分割后文件的行数: ``` $ split -l 1000 large_file.txt stxt ``` ### 1.2 二进制文件分割 二进制文件分割类似于按大小分割文本文件,不同的是以`-b`参数来指定分割后的文件大小: ``` $ split -b 100M data.bak sdata ``` ## 2. 文件合并 文件合并使用`cat`命令,上面几种方式分割的文件都可以使用`cat`命令合并。 `cat`命令合并分割文件: ``` $ cat stxt* > new_file.txt ``` ## 3. 命令格式 ### 3.1 `split`命令说明 `split`命令格式如下: ``` split [选项]... [要切割的文件 [输出文件前缀]] ``` 命令参数 ``` -a, --suffix-length=N 使用长度为 N 的后缀 (默认 2) -b, --bytes=SIZE 设置输出文件的大小。支持单位:m,k -C, --line-bytes=SIZE 设置输出文件的最大行数。与 -b 类似,但会尽量维持每行的完整性 -d, --numeric-suffixes 使用数字后缀代替字母 -l, --lines=NUMBER 设备输出文件的行数 --help 显示版本信息 --version 输出版本信息 ``` ### 3.2 `cat`命令说明 `cat`是Linux下使用频率较高的命令之一,该令详细介绍: [cat连接文件并打印到标准输出设备上](https://itbilu.com/linux/man/EJe2hbX.html) `cat`命令的常见使用场景有: 显示文件内容: ``` $ cat filename ``` 创建一个空文件: ``` $ cat > filename ``` 文件合并: ``` $ cat file1 file2 > file ``` 转载自:https://itbilu.com/linux/man/Nkz2hoeNm.html 最后修改:2021 年 06 月 15 日 03 : 12 PM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者