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