我想产生一个1 GB的随机文件,因此我使用了以下命令。
dd if=/dev/urandom of=output bs=1G count=1
但是,每次我启动此命令时,我都会得到一个32 MB的文件:
<11:58:40>$ dd if=/dev/urandom of=output bs=1G count=1
0+1 records in
0+1 records out
33554431 bytes (34 MB, 32 MiB) copied, 0,288321 s, 116 MB/s
怎么了?
编辑:
多亏了本主题中的出色答案,我提供了一个解决方案,该解决方案读取32个大32 MB的块,即1GB:
dd if=/dev/urandom of=output bs=32M count=32
给出了其他解决方案,该解决方案直接读取1 GB的内存,然后再写入磁盘。此解决方案占用大量内存,因此不推荐使用:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
/dev/urandom
也不在POSIX中...
dd
。我会使用head
,cat
或者rsync
几乎总是使用它。您的问题是否是替代方法通常更安全的原因之一。