Por que ls -lh não mostra o tamanho total de todos os arquivos e diretórios em cada diretório?

1

Por exemplo, ele mostra o kernel como sendo 18M, mas a pasta Applications como sendo 3.8K

BSD / Darwin

    
por Igorio 24.06.2011 / 01:01

2 respostas

3

De acordo com a página man do ls:

List information about the FILEs (the current directory by default).

ls destina-se a mostrar o tamanho dos arquivos no sistema de arquivos, não para mostrar o uso de um diretório. du mostrará o uso total de um objeto do sistema de arquivos.

Então ls está fazendo o que é suposto fazer. Enquanto seu diretório de aplicativos pode conter arquivos que usam mais de 3.8K, o diretório de aplicativos em si é realmente apenas 3.8K no disco.

    
por 24.06.2011 / 03:05
1

Porque você não está no Windows, onde o mundo finge que os diretórios não têm custo de espaço, e todos os diretórios são de tamanho zero. (Algumas partes do mundo do Windows fingem que o tamanho de um diretório é o tamanho cumulativo de todas as coisas contidas no diretório ).

No Unices e no Linux, o comando ls -l , ao exibir uma entrada de diretório que aponta para outro diretório, mostra o tamanho do diretório . Mostra a quantidade de espaço dedicado para armazenar as entradas no próprio diretório. Para cada entrada de diretório, ls -l sempre mostra o tamanho do nó apontado por essa entrada, seja arquivo, link simbólico ou diretório.

    
por 24.06.2011 / 14:15

Tags