900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 使用dd命令在Linux下创建大文件 批量大小文件生成方法

使用dd命令在Linux下创建大文件 批量大小文件生成方法

时间:2019-08-20 14:54:23

相关推荐

使用dd命令在Linux下创建大文件 批量大小文件生成方法

前沿:最近在开发自动从U盘拷贝大批量文件到linux系统的的功能。由于需要几十个G的大文件来做测试,如果自己去找这么多资源,然后再拷贝,非常麻烦。所以学了下dd命令,现在总结一下:

一、参数介绍

if=FILE从FILE中读取数据,而不是默认的标准输入。 if可理解为:in file

of=FILE 往FILE中写入数据,而不是默认的标准输出。 of可理解为:out file

ibs=BYTES 读取数据时,一次性读出BYTES大小的块,如果不指定,默认512字节。

obs=BYTES 写入数据时,一次性写入BYTES大小的块,如果不指定,默认512字节。

bs=bytes #输入输出块大小。同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。

cbs=bytes #一次转换 bytes 个字节,即转换缓冲区大小。。

skip=N跳过N*ibs字节数再开始读取数据。

seek=N 跳过N*obs字节数再开始写入数据。

count=N 总共读取N*ibs字节数的数据,当然写入的数据也是这个大小。

二、创建指定文件大小,并且写入U盘

dd if=/dev/zero of=hi.mp4 bs=1M count=1000

在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。

三、创建指定文件大小,但是不写入U盘(创建速度非常快)

我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘

dd if=/dev/zero of=test bs=1M count=0 seek=100000

此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。

四、批量随机生成 40个1G的大mp4文件,我用的就是这个:

seq 40 |xargs -i dd if=/dev/zero 0f={}.mp4 bs=1001001024 count=1

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。