Como posso criar um novo arquivo e preenchê-lo com dados aleatórios de 1 Gigabyte? Eu preciso disso para testar algum software.
Eu preferiria usar /dev/random
ou /dev/urandom
.
Como posso criar um novo arquivo e preenchê-lo com dados aleatórios de 1 Gigabyte? Eu preciso disso para testar algum software.
Eu preferiria usar /dev/random
ou /dev/urandom
.
Respostas:
Na maioria das unidades:
head -c 1G </dev/urandom >myfile
Se você head
não entender o G
sufixo, poderá especificar o tamanho em bytes:
head -c 1073741824 </dev/urandom >myfile
Se você head
não entende a -c
opção (é comum, mas não POSIX; você provavelmente possui o OpenBSD):
dd bs=1024 count=1048576 </dev/urandom >myfile
head
não entende -c
na minha máquina Solaris 10.
head
pode ler /dev/urandom
, mas tail
não pode.
tail
tenta primeiro chegar ao final do arquivo de entrada, o que leva uma eternidade (literalmente).
/dev/zero
, se não gosta de variedade.
Supondo que dados pseudo-aleatórios sejam suficientes, dd if=/dev/urandom of=target-file bs=1M count=1000
fará o que você deseja.
O dd (1) lê blocos de dados de um arquivo de entrada e os grava em um arquivo de saída. A linguagem da linha de comando é um pouco peculiar, mas é uma daquelas ferramentas realmente úteis que valem a pena dominar o básico.
Nesse caso, if
é o arquivo de entrada, of
o arquivo de saída, o bs
"tamanho do bloco" - e eu usei a extensão GNU para definir o tamanho mais convenientemente. (Você também pode usar 1048576 se dd
não tiver extensão GNU.) count
É o número de blocos para ler if
e gravar of
.
/dev/urandom
é uma escolha melhor do que /dev/random
porque, no Linux, ele voltará a fortes dados pseudo-aleatórios em vez de bloquear quando os dados genuinamente aleatórios estiverem esgotados.
Você também pode considerar http://www.random.org/ como outro caminho para obter alguns dados aleatórios sem precisar gerá-los.
1M
não estão disponíveis em todas as dd
variantes padrão . Se sua versão do dd
é afetada, use bs=1048576
.
while true;do head /dev/urandom | tr -dc A-Za-z0-9;done | head -c 5000K | tee 5000kb
Usado para gerar 5 MB de dados aleatórios de caracteres. Se você precisar de tamanho diferente, altere o -c
valor do cabeçalho, altere o nome do arquivo externo, execute e aguarde até a execução ser concluída.
vi
comvi -w randomfile
e pergunte a alguém que nunca viuvi
sair do programa. ;)