Como eu queria produzir um arquivo aleatório de 1 GB, usei o seguinte comando.
dd if=/dev/urandom of=output bs=1G count=1
Mas, em vez disso, sempre que inicio este comando, recebo um arquivo de 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
O que está errado?
EDITAR:
Graças a ótimas respostas neste tópico, eu vim com uma solução com 32 pedaços de 32 MB de tamanho, o que perfaz 1 GB:
dd if=/dev/urandom of=output bs=32M count=32
Outra solução foi fornecida: lê 1 GB diretamente na memória e depois grava no disco. Esta solução consome muita memória, portanto não é preferida:
dd if=/dev/urandom of=output bs=1G count=1 iflag=fullblock
head
não pode executar esta tarefa sem a -c
opção que não está no POSIX . Não conheço nenhuma versão cat
que possa resolver isso. rsync
é um utilitário completamente fora do padrão. Isso não está aqui nem ali; folheando sua página de manual, também não vejo como ele pode resolver esse problema.
/dev/urandom
não está na POSIX ou ...
dd
. Eu usariahead
,cat
oursync
em seu lugar quase sempre. E sua pergunta se uma das razões pelas quais as alternativas são geralmente mais seguras.