Sei base 2 e base 10, MB e MiB, mas não estou entendendo as contagens de bytes mostradas para um diretório, por du e pelo windows explorer

0

O comando du mostra 43G em uso. Não tenho certeza se é a base 2 no sentido de 2 ^ 30 ou se é base 10, no sentido de 10 ^ 9. Mas de qualquer forma -

Executando este comando du a partir do cygwin, para ver o tamanho do diretório windows (feito a partir de um prompt de comando administrativo - já que parecia ter alguns problemas ao ler alguns diretórios)

user@comp ~
$ du -sh /cygdrive/c/windows
43G     /cygdrive/c/windows

O Windows Explorer, que entendo, mostra-o na 'base 2' (uma unidade maior para KB, MB, GB do que a base 10 KiB, MiB etc) e, portanto, é necessária uma quantidade menor dessa unidade maior para fornecer a mesma resultado.

O Windows Explorer mostra

46,6 GB, mais de 50 bilhões de bytes. (de acordo com o Windows Explorer)

ou

46,8 GB, mais de 50 bilhões de bytes. (de acordo com o Windows Explorer)

Então, du aparte.

Mesmo que eu multiplique o número maior, 46,8 GB por 1,048576, recebo 49.0733568 que não ultrapassa os 50 bilhões. Então essa é a parte A da questão, mas também, parte B da pergunta, por que a figura é tão baixa?

    
por barlop 12.08.2016 / 17:24

1 resposta

2

A resposta à Parte A da pergunta é que você não está multiplicando pelo número correto. O fator de correção de "GB binário", ou mais corretamente GiB, para bytes não é 1.048576. É 1024 ao cubo. Isso é 1.073.741.824.

46,8 x 1024 ao cubo = 50,251,117,363.2 O restante da discrepância é devido a um erro de arredondamento no "46.8". Parece que realmente deveria ser 46.813 ... alguma coisa.

Você precisa de outro fator de 1024 para cada "etapa" na escala dos prefixos binários. Por exemplo, para ir de GiB para KiB, ou de MiB para B, você deve multiplicar por 1024 ao quadrado, que é 1.048.576.

Veja o artigo da Wikipedia sobre "Prefixo binário", especialmente a tabela na parte inferior desta seção: link

    
por 12.08.2016 / 17:33