Saída inconsistente do comando `du`


0

Por que a saída de

du -sch ./

não é idêntico a

du -sch ./*

Por exemplo, eu corri du -schno diretório pessoal do meu usuário e obtive 51 GB, mas rodar du -sch *no mesmo diretório resulta em 47 GB. No começo, pensei que talvez fosse responsável por arquivos ocultos, mas isso não explica quase 4 GB de arquivos / pastas ocultos.

Eu li o manual do utilitário de disco, mas não consegui encontrar uma explicação.

Respostas:


1

No começo, pensei que talvez fosse responsável por arquivos ocultos, mas isso não explica quase 4 GB de arquivos / pastas ocultos.

Como você mediu isso? Eu acho que você faz tem 4 GB de arquivos ocultos / diretórios, ou talvez até mais (em um sentido) se houver hardlinks envolvidos.

Isso lhe dirá (caí -hpara obter resultados mais exatos; tailé passar apenas no "total"; testado em bash):

du -sc ./.[^.]*    | tail -n 1   # hidden
du -sc ./*         | tail -n 1   # non-hidden
du -sc ./{.[^.],}* | tail -n 1   # hidden and non-hidden by wildcards
du -sc ./          | tail -n 1   # directory as a whole

(sintaxe retirada desta resposta ).

O primeiro comando é o que você está perdendo. Obtenha uma soma do primeiro e do segundo resultado; será igual aos dois últimos resultados, a menos que ...

A menos que haja arquivos com links físicos entre a parte oculta e a não oculta. Nesse caso, a soma será ainda maior porque esses arquivos serão contados duas vezes quando você soma manualmente, mas apenas uma vez quando os dusoma para você em uma única passagem . Nesse caso, há ainda mais espaço ocupado por arquivos / diretórios ocultos do que você imagina (embora parte desse espaço seja "compartilhada" com partes não ocultas). Observe que há uma -lopçãodu que controla esse comportamento:

-l, --count-links
conte os tamanhos várias vezes se for vinculado


Ei Kamil, você está absolutamente correto, havia um monte de hardlinks que eu não havia considerado. Obrigado pela ajuda e obrigado pela informação sobre du !! Vou me certificar de acrescentar que as minhas notas:]
Aren Tahmasian
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.