首页 > 代码库 > Linux下的文件分割命令split

Linux下的文件分割命令split

用法:split [选项]... [输入 [前缀]]
将输入内容拆分为固定大小的分片并输出到"前缀aa"、"前缀ab",...;
默认以 1000 行为拆分单位,默认前缀为"x"。如果不指定文件,或
者文件为"-",则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。
  -a, --suffix-length=N    指定后缀长度为N (默认为2)
  -b, --bytes=大小        指定每个输出文件的字节大小
  -C, --line-bytes=大小    指定每个输出文件里最大行字节大小
  -d, --numeric-suffixes     使用数字后缀代替字母后缀
  -l, --lines=数值        指定每个输出文件有多少行
      --verbose        在每个输出文件打开前输出文件特征
      --help        显示此帮助信息并退出
      --version        显示版本信息并退出

SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。

例子:
$ ls -l
-rw-r--r-- 1 user user 3773144  5月 26 10:54 splittest.tar.bz2

$split -a 3 -d -b 800KB splittest.tar.bz2 sp
-a 3   #指定后辍为3位
-d     #指定后辍为数字,而不是默认的aa ab等
-b 800KB #分割的大小
sp     #前辍

$ls -l
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp000
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp001
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp002
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp003
-rw-r--r-- 1 user user  573144  5月 26 11:05 sp004
-rw-r--r-- 1 user user 3773144  5月 26 10:54 splittest.tar.bz2
可以看到,sp000-sp004就是分割后的文件。


合并:
$cat sp00* >splittest1.tar.bz2
$ls -l
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp000
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp001
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp002
-rw-r--r-- 1 user user  800000  5月 26 11:05 sp003
-rw-r--r-- 1 user user  573144  5月 26 11:05 sp004
-rw-r--r-- 1 user user 3773144  5月 26 11:11 splittest1.tar.bz2
-rw-r--r-- 1 user user 3773144  5月 26 10:54 splittest.tar.bz2
可以看到,合并后的文件splittest1.tar.bz2与分割前的splittest.tar.bz2 大小是一致的

$ md5sum splittest1.tar.bz2
12951203bd64c314d14a57b5d57f2592  splittest1.tar.bz2
$ md5sum splittest.tar.bz2
12951203bd64c314d14a57b5d57f2592  splittest.tar.bz2

分别比较两个文件的MD5校验,可以确认合并是正确的。

Linux下的文件分割命令split