linux下split以及dd 命令
简介:
split将大文件分割成小文件;
dd创建任意大小文件(有if输入和of输出,实际上应该是一个拷贝的命令吧);
实操:
dd篇
下面来实战一下,由于是在Windows下进行操作所以使用cmder模拟一下linux环境(顺便安利下cmder这款软件,还是相当好用的)贴上官方下载链接 cmder下载
首先我们使用dd命令创建一个 '10M的文件名为testdata' 的文件如下:
dd if=/dev/zero of=testdata bs=1M count=10
这里简单介绍下dd命令常用的一些参数
if=输入文件(或设备名称)
of=输出文件(或设备名称)
bs=bytes 同时设置读写缓冲区的字节数
count=blocks 只拷贝输入的blocks块
具体dd命令的用法可以参考
补充:
在用dd命令创建大文件时不显示进度条 那我们怎么知道创建的进度呢?
这里提供一种方法 sudo watch -n 5 killall -USR1 dd
或者sudo watch -n 5 pkill -USR1 ^dd$
(这里不要看到有 kill相关的词汇就害怕 没事的,只管打开一个新的shell然后输入命令就能看到当前的执行进度了)
split篇
现在有了一个10M的文件testdata了 我们可以使用split命令将其分成一个个小块
split -b 1M testdata
-b参数指明 每一块输出的大小 即上述命令将testdata分成了若干个1M大小的小文件 文件名默认字母后缀,如果想要使用
数字后缀可以使用-d参数,同时可以使用-a length来指定后缀的长度 如下
split -b 1M -d -a 2 testdata
想要指定分割后文件的前缀可以使用如下命令:
split -b 1M testdata -d test
补充:
使用-l选项可以根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件可以使用如下命令
split -l 10 testdata