Linux 系统 split 命令用于将一个文件分割成n个文件,命令适用于将大文件分割成小文件,在默认情况下将安装1000行分割成独立的文件,基本语法 split [OPTION] [INPUT [PREFIX]]。
功能描述具体如下:
将输入文件'INPUT'分割,输出固定大小的文件片段"PREFIXaa,PREFIXab,...",这里,默认的大小为1000行,并且PREFIX的默认值为'x',如果没有指定输入文件(INPUT文件),或者输入为-,那么会从标准输入读取,选项如下:
-a, --suffix-length=N
使用的后缀的长度,默认长度为2,例如'aa','ab'等后缀,其长度就是2。
-b, --bytes=SIZE
指定每个输出文件片段的大小。
-C, --line-bytes=SIZE
指定每个输出文件片段的最大行字节(???)。
-d, --numeric-suffixes
指定输出文件片段后缀为数字而不是默认的字母形式。
-l, --lines=NUMBER
指定每个输出文件片段的行数。
以上,指定的大小"SIZE"可以用如下的方式指定单位:后缀为b表示512字节,后缀为k表示1K,后缀为m表示1M。
命令语法:
split [–help][–version] split [-<行数>][-l <行数>] [要切割的文件][输出文件名] ,以行数为单位 split [-b <字节>][-C <字节>] [要切割的文件][输出文件名],以字节为单位 输出文件名是指切割后的文件会以此为前缀
查看 catalina.out 日志文件大小,具体命令如下:
[root@iZ256w2hluuZ logs]# ls -lh catalina.out -rw-r--r-- 1 root root 99M Oct 22 18:43 catalina.out
将这个99M文件分割成20M的小文件,文件分割操作如下:
[root@iZ256w2hluuZ logs]# split -b 20m catalina.out yoodb_catalina_ [root@iZ256w2hluuZ logs]# ll -lh yoodb_catalina_* -rw-r--r-- 1 root root 20M Oct 22 18:46 yoodb_catalina_aa -rw-r--r-- 1 root root 20M Oct 22 18:46 yoodb_catalina_ab -rw-r--r-- 1 root root 20M Oct 22 18:46 yoodb_catalina_ac -rw-r--r-- 1 root root 20M Oct 22 18:46 yoodb_catalina_ad -rw-r--r-- 1 root root 19M Oct 22 18:46 yoodb_catalina_ae
注意:
-B 20M 是指将每个分卷文件最大20M 。
catalina.out 需要分割的文件。
yoodb_catalina_ 是指分割后的文件开头,分割后后的文件名一般为yoodb_catalina__aa、yoodb_catalina__ab、yoodb_catalina_ac依次类推。
将分割后的文件,合并为一个大文件,具体命令如下:
[root@iZ256w2hluuZ logs]# cat yoodb_catalina_*>yoodb.tar.gz [root@iZ256w2hluuZ logs]# ll -lh yoodb.tar.gz -rw-r--r-- 1 root root 99M Oct 22 18:48 yoodb.tar.gz