当输入命令时:
dd if=/dev/urandom of=outputfile bs=1G count=1
如果我理解正确的话,我应该会收到一个 1GB 大小的文件。
然而,我收到了包含以下值的文件:
33554431 bytes (34 MB, 32 MiB) copied, 0.27126 s, 124 MB/s
这是为什么?
在它工作的系统上我收到:
1+0 Records in
1+0 Records out
文件最终大小为 34MB,我收到:
0+1 Records in
0+1 Records out
答案1
设备/dev/urandom
暂时返回零字节(没有更多数据)。该dd
实用程序将其视为 EOF 并停止。因为您知道这/dev/urandom
会生成更多随机数据,所以您需要告诉dd
重新尝试读取输入:
dd if=/dev/urandom iflag=fullblock bs=1G count=1
当从工具读取数据(例如以非块大小的单元写入数据)iflag=fullblock
时,也需要该标志。zcat