(ls) o comando não mostrará o tamanho exato - Saída estranha [fechada]

1

Eu estou tentando encontrar o tamanho dos arquivos no meu disco rígido em bytes exatos, mas sempre que o tamanho fica muito grande, o número fica todo estranho (como 1,98329e + 12). Posso impedi-lo de fazer isso ou converter isso em bytes exatos?

O comando é

ls -lR | grep -v '^d' | awk '{total += $5} END {print "Total:", total}'

Imagem dos bytes exatos:

Imagemdonúmeroestranho:

  • O ponto de corte antes de parar de exibir bytes exatos parece estar em torno de 500 gb
  • O comando du -sb mostra corretamente os bytes exatos, independentemente do tamanho do diretório.
  • Eu já experimentei o Ubuntu Gnome 15.10 64bit (japonês e inglês) e Linux Mint 17.3 Cinnamon 64bit (japonês)
  • Minhas unidades são NTFS, então tentei formatá-las como ext4 e copiar meus arquivos. Os resultados são os mesmos que o NTFS.
por パンツ 07.04.2016 / 15:47

1 resposta

1

Isso não tem nada a ver com ls e tudo tem a ver com a saída dos números de awk .

A página man para awk mostra que o formato de saída numérica padrão é .6g , o que significa que um número de ponto flutuante de duplo comprimento será produzido com 6 dígitos de precisão, usando o formato expoente (que você vê) ou um decimal.

Você pode alterar isso para um formato de saída explícito como este

echo 123456789012345 | awk '{printf "Total: %.6g\n", $1}'
Total: 1.23457e+14

echo 123456789012345 | awk '{printf "Total: %.0f\n", $1}'
Total: 123456789012345
    
por 07.04.2016 / 16:02