split命令,文件切割

当我们有一个很大的文件需要处理时,可以先用 split 分割后再处理.

split 的命令格式:

split [-b ][-C ][-][-l ][要切割的文件][输出文件名前缀][-a ]

最常用的选项,都在这里了:

  • -b<字节>:指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。
  • -<行数>或-l<行数>:指定每多少行要拆分成一个文件。
  • 输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。
  • -a<后缀长度>:默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。

# 先看一下文件的 MD5 值

md5sum test.tar.gz

 #以大小来切割

split -b 100m test.tar.gz 

#切割后传输并合并

cat xaa xab xac .. > test.tar.gz 

# 比较合并后文件的 MD5 值是否和原来的相等,如果不相等可能是某个小文件的传输出了问题,比较一下小文件的 md5

使用dd  if生成测试文件

生成一个大小为100KB的测试文件:

# dd if=/dev/zero bs=100k count=1 of=date.file
1+0 records in
1+0 records out
102400 bytes (102 kB) copied, 0.00043 seconds, 238 MB/s

指定文件大小来切割:

# split -b 10k date.file 
# ls
date.file  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj

文件被分割成多个带有字母的后缀文件,

-d参数:指点数字后缀(默认为字母后缀)

-a 参数:指定后缀的长度

# split -b 10k date.file -d -a 3
# ls
date.file  x000  x001  x002  x003  x004  x005  x006  x007  x008  x009

为分割后的文件指定文件名的前缀:

# split -b 10k date.file -d -a 3 split_file
# ls
date.file  split_file000  split_file001  split_file002  split_file003  split_file004  split_file005  split_file006  split_file007  split_file008  split_file009

指定行数来切割小文件:

split -l 10 date.file

http://c.biancheng.net/linux/split.html 

原文地址:https://www.cnblogs.com/zjz20/p/14155968.html