1.语法:
time dd if=path/input_file of=/path/output_file bs=block_size count=number_of_blocks
time有计时作用,dd用于复制,从if读出,写到of;
if=输入文件名,缺省为标准输入of=输出文件名,缺省为标准输出ibs= 一次读入字节数(即一个块大小)obs= 一次写字节数(即一个块大小) bs= 同时设置读写块的大小 ,可代替 ibs 和 obs 。 cbs= 一次转换字节,即转换缓冲区大小。 skip= 从输入文件开头跳过 blocks 个块后再开始复制。 seek= 从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效) count=仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。 conv=conversion[,conversion...] 用指定的参数转换文件。iflag=指定读的方式,参见“FLAGS参数说明”oflag=指定写的方式,参见“FLAGS参数说明”
2.两个特殊设备:
(1)if=/dev/zero(产生字符)不产生IO,因此可以用来测试纯写速度;
(2) of=/dev/null(回收站、无底洞)不产生IO,可以用来测试纯读速度;
3.速度
3.1 写速度
time dd if=/dev/zero of=test.txt bs=8k count=300000
=>
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB, 2.3 GiB) copied, 25.5826 s, 96.1 MB/s
real 0m25.758s
user 0m0.264s
sys 0m2.320s
所以写速度为:8*300000/1024/25.758=90.991M/s
3.2 读速度
sudo time dd if=/dev/sda1 of=/dev/null bs=8k
=>
33280+0 records in
33280+0 records out
272629760 bytes (273 MB, 260 MiB) copied, 1.78716 s, 153 MB/s
所以sda1上的读取速度为:8*33280/1024/1.78716 =145.482M/s
如果觉得《[Linux]time+dd测试硬盘/手机/SD卡读写速度》对你有帮助,请点赞、收藏,并留下你的观点哦!