扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
使用dd命令快速生成大文件或者小文件的方法
创新互联建站专注于张湾企业网站建设,成都响应式网站建设,商城网站建设。张湾网站建设公司,为张湾等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
转载请说明出处:
在程序的测试中有些场景需要大量的小文件或者几个比较大的文件,而在我们的文件系统里一时无法找到那么多或者那么大的文件,此时linux的dd命令就能快速的帮助你完成想要的文件。具体用法简单总结如下:
1.
dd命令可以轻易实现创建指定大小的文件,如
dd
if=/dev/zero
of=test
bs=1M
count=1000
在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘
则可以
dd
if=/dev/zero
of=test
bs=1M
count=0
seek=100000
此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。
2.
随机生成1百万个1K的文件
seq
1000000
|
xargs
-i
dd
if=/dev/zero
of={}.dat
bs=1024
count=1
linux使用dd命令创建特定大小文件最简单的方法及文件杂谈创建特定大小文件最简单的方法是使用
dd
命令。dd
if=inputFileName
of=outFileName
bs=块大小
count=块个数块大小可以使用各种计量单位字节(1B)
-
c
字(2B)
-
w
块(512B)
-
b
千字节(1024B)
-
k兆字节(1024K)
-
M
吉字节(1024M)
-
G例:dd
if=/dev/zero
of=test.file
bs=1M
count=10在当前文件夹下创建一个大小为10M的文件test.file
内容全为0/dev/zero
是一个字符设备,它会不断返回0值字节(/0).如果不指定输入参数(if),默认情况会从stdin读取输入。如果不指定输出参数(of),默认情况会将stdout作为输出。也可用
dd
命令来传输大量数据来测试内存的操作速度。$
dd
if=/dev/zero
of=./testmm.file
bs=10M
count=10记录了10+0
的读入记录了10+0
的写出104857600字节(105
MB)已复制,0.577581
秒,182
MB/秒$
ll
-h
|grep
'testmm.file'-rw-rw-r--.
1
itudu
itudu
100M
7月
16
18:14
testmm.file文件类型:一般文件:
-目录文件:
d字符设备:
c块设备:
b链接文件:
l套接字文件:
s管道文件:
p目录的读、写、执行权限意义:读权限:允许读取目录中文件和子目录的列表写权限:允许在目录中新建和删除文件或子目录执行权限:可以访问目录中的文件和子目录
Linux dd 命令用于读取、转换并输出数据。
dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。
参数说明:
if=文件名:输入文件名,默认为标准输入。即指定源文件。
of=文件名:输出文件名,默认为标准输出。即指定目的文件。
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=关键字,关键字可以有以下11种:
conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swap:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
--help:显示帮助信息
--version:显示版本信息
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流