O exemplo está um pouco errado e o resultado está correto. Deixe-me explicar.
O $(( 1024 * 1024 * 5 ))
é simplesmente uma soma, mas só funcionará no ambiente sh
shell. Por exemplo:
sh
echo $(( 1024 * 1024 * 5))
5242880
Essa parte foi classificada de volta para jot
. O -r
é para "dados aleatórios" e deve ser o que você encontra no arquivo.
O -c
é uma forma abreviada e é igual ao uso de -w %c
. Embora eu não saiba exatamente o que significa %c
, ele parece produzir um único byte de dados aleatórios. Você poderia trocar o -c
por -b x
e obteria o mesmo arquivo de tamanho, mas ele conteria apenas o x
repetido.
O próximo é -s ''
, o que significa que nenhuma linha é retornada. Sem isso, haveria um retorno de linha após cada caractere (ou dados aleatórios). Seu arquivo também deve ser duas vezes maior.
A próxima parte é $(( 1024 * 1024 * 5 ))
. Essa é a quantidade de "dados" a produzir. Como mostrado acima, essa soma torna o número 5242880
(que é de apenas 5 MiB) e esse é o tamanho do arquivo mais 1 byte para o retorno da linha à direita. Por exemplo:
sh
jot -r -c -s '' $(( 1024 * 1024 * 5 )) > file.5mb
ls -al file.5mb
-rw-r--r-- 1 tigger tigger 5242881 2 Apr 15:39 file.5mb