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/randomou /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/randomou /dev/urandom.
Respostas:
Na maioria das unidades:
head -c 1G </dev/urandom >myfile
Se você headnão entender o Gsufixo, poderá especificar o tamanho em bytes:
head -c 1073741824 </dev/urandom >myfile
Se você headnão entende a -copção (é comum, mas não POSIX; você provavelmente possui o OpenBSD):
dd bs=1024 count=1048576 </dev/urandom >myfile
headnão entende -cna minha máquina Solaris 10.
headpode ler /dev/urandom, mas tailnão pode.
tailtenta 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=1000fará 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, ofo 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 ddnão tiver extensão GNU.) countÉ o número de blocos para ler ife gravar of.
/dev/urandomé uma escolha melhor do que /dev/randomporque, 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.
1Mnão estão disponíveis em todas as ddvariantes 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 -cvalor do cabeçalho, altere o nome do arquivo externo, execute e aguarde até a execução ser concluída.
vicomvi -w randomfilee pergunte a alguém que nunca viuvisair do programa. ;)