split [OPTION] [INPUT [PREFIX]]
功能
將文件分割成多片。
描述
將輸入文件 INPUT
分割,輸出固定大小的文件片段 PREFIXaa
, PREFIXab
,…,這里,默認(rèn)的大小為1000行,并且 PREFIX
的默認(rèn)值為 x
,如果沒(méi)有指定輸入文件( INPUT
文件),或者輸入為 -
,那么會(huì)從標(biāo)準(zhǔn)輸入讀取。
選項(xiàng)如下:
-
-a
,--suffix-length=N
: 使用的后綴的長(zhǎng)度,默認(rèn)長(zhǎng)度為2,例如aa
,ab
等后綴,其長(zhǎng)度就是2。 -
-b
,--bytes=SIZE
: 指定每個(gè)輸出文件片段的大小。 -
-C
,--line-bytes=SIZE
: 指定每個(gè)輸出文件片段的最大行字節(jié)(???)。 -
-d
,--numeric-suffixes
: 指定輸出文件片段后綴為數(shù)字而不是默認(rèn)的字母形式。 -
-l
,--lines=NUMBER
: 指定每個(gè)輸出文件片段的行數(shù)。
以上,指定的大小 SIZE
可以用如下的方式指定單位:后綴為 b
表示512字節(jié),后綴為 k
表示 1K
,后綴為 m
表示 1M
。
舉例
將文件 rootfs.tgz
分割成 15m
每份
# split -b 15m rootfs.tgz
這里,會(huì)將文件 rootfs.tgz
分割成多個(gè)片段,每個(gè) 15m
,最后一個(gè)根據(jù)文件大小可能小于 15m
。單位 15m
中的 m
必須小寫(xiě)。另外,不加 m
單位的話則為字節(jié)。
具體如下:
(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 總計(jì)
# ls -l
總計(jì) 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實(shí)際就是15M。
(3)將文件合并
#cat xaa xab xac >merge.tgz
這樣會(huì)將分割的文件合并還原。
將文件 rootfs.tgz
分割成 15m
每份,前綴名稱為 rootfs
# split -b 15m rootfs.tgz rootfs
這樣,生成的文件片段名稱不是默認(rèn)的 x
為前綴而是以指定的 rootfs
為前綴了。
分割之后,文件如下:
# ls
rootfsaa rootfsab rootfsac rootfs.tgz
將文件 rootfs.tgz
分割成 15m
每份,后綴名稱為數(shù)字
# split -b 15m rootfs.tgz -d
這樣,分割之后,每個(gè)文件片段的后綴不是默認(rèn)的字母而是數(shù)字了,前綴(默認(rèn)為 x
)也可以自己指定的。運(yùn)行之后如下:
# ls
rootfs.tgz x00 x01 x02
這里, x00
, x01
, x02
就是文件片段。
其他
可以使用 cat
命令將分割的文件片段合并。
例如:
#cat xaa xab xac >merge.tgz
這樣會(huì)將分割的文件片段 xaa
, xab
, xac
合并還原成 merge.tgz
。