Preciso criar um monte de arquivos de 1 GB em locais aleatórios do meu sistema de arquivos e repetir esse processo indefinidamente. Não me importo se os arquivos estão preenchidos com dados aleatórios ou vazios, só preciso preencher o sistema com esses arquivos. Gostaria de poder criá-los todos com o mesmo nome.
Se alguém tiver alguma resposta, por favor, compartilhe. Obrigado.
Este comando criará 10 arquivos, de 1 GB cada, em locais aleatórios em seu sistema de arquivos:
Explicação
find / -mount -type d -print0 2>/dev/null
: encontre todos os diretórios em seu arquivo/
. O-moun
dizfind
para não descer em sistemas de arquivos montados. Isso é opcional, mas é uma boa ideia se você tiver algum compartilhamento de rede montado ou algo semelhante. Em seguida,-print0
significa "terminar cada linha com um NULL (\0
) em vez de uma nova linha (\n
)". Você precisa disso caso algum dos nomes de diretórios que você encontrar contenha uma nova linha. Por fim, o2>/dev/null
objetivo é descartar mensagens de erro sobre não ter permissão para ler diretórios. Você também pode evitar isso executando ofind
comando como root, mas isso é bastante arriscado sem entrar nos diretórios do sistema.shuf -zn 10
: escolha 10 linhas aleatoriamente. O-z
permiteshuf
lidar com linhas terminadas em NULL.while IFS= read -r -d '' dir; do
: leia cada linha terminada em nulo, salvando cada diretório como$dir
e...sudo fallocate -l 1G "$dir"/evilFile
: crie um arquivo 1G nesse diretório.