Linux命令学习手册-split

作者: QuietHeart | 来源:发表于2020-03-12 08:21 被阅读0次
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

举例

将文件 rootfs.tgz 分割成 15m 每份

# split -b 15m rootfs.tgz

这里,会将文件 rootfs.tgz 分割成多个片段,每个 15m ,最后一个根据文件大小可能小于 15m 。单位 15m 中的 m 必须小写。另外,不加 m 单位的话则为字节。

具体如下:

(1)分割之前

#ls -l
-rw-r--r-- 1 quietheart quietheart 35055284 01-06 10:49 rootfs.tgz

(2)分割之后

# du -shc *
34M     rootfs.tgz
16M     xaa
16M     xab
3.5M    xac
67M     总计
# ls -l
总计 68572
-rw-r--r-- 1 quietheart quietheart 35055284 01-06 10:49 rootfs.tgz
-rw-r--r-- 1 root       root       15728640 01-06 10:57 xaa
-rw-r--r-- 1 root       root       15728640 01-06 10:57 xab
-rw-r--r-- 1 root       root        3598004 01-06 10:57 xac

这里,"du"命令大小有误差,使用ls -l可看到15728640实际就是15M。

(3)将文件合并

#cat xaa xab xac >merge.tgz

这样会将分割的文件合并还原。

将文件 rootfs.tgz 分割成 15m 每份,前缀名称为 rootfs

# split -b 15m rootfs.tgz rootfs

这样,生成的文件片段名称不是默认的 x 为前缀而是以指定的 rootfs 为前缀了。

分割之后,文件如下:

# ls
rootfsaa  rootfsab  rootfsac  rootfs.tgz

将文件 rootfs.tgz 分割成 15m 每份,后缀名称为数字

# split -b 15m rootfs.tgz -d

这样,分割之后,每个文件片段的后缀不是默认的字母而是数字了,前缀(默认为 x )也可以自己指定的。运行之后如下:

# ls
rootfs.tgz  x00  x01  x02

这里, x00 , x01 , x02 就是文件片段。

其他

可以使用 cat 命令将分割的文件片段合并。

例如:

#cat xaa xab xac >merge.tgz

这样会将分割的文件片段 xaa , xab , xac 合并还原成 merge.tgz

相关文章

网友评论

    本文标题:Linux命令学习手册-split

    本文链接:https://www.haomeiwen.com/subject/rdzwrhtx.html