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

本文详细介绍dd命令的使用方法,包括参数解释、创建指定大小文件、快速生成大文件技巧及批量生成大文件脚本,是Linux系统管理和测试的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前沿:最近在开发自动从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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值