O "total" na parte superior de uma listagem ls -l é a soma dos blocos usados por todos os itens nessa listagem. Você pode obter a contagem de blocos para cada item individual adicionando o sinalizador -s .
Coisas a serem notadas sobre as contagens de blocos e "total":
-
lsnão relata as contagens de bloco usando o tamanho do bloco do sistema de arquivos (que normalmente é 4096 bytes), mas em unidades de 1024 ou 512 bytes, dependendo da versão (e sinalizadores e às vezes variáveis de ambiente). É por isso que, na maioria dos sistemas modernos, as contagens de bloco relatadas porlssão sempre um múltiplo de 4. -
O tamanho de um diretório não é uma soma recursiva dos tamanhos das coisas contidas nele.
mkdir a mkdir a/b head -9999999999c /dev/urandom > a/b/fooO que
ls -l aexibirá? Ele mostraráb, que é um diretório. E qual é o tamanho deb? Muito pequeno, provavelmente 4 blocos (1 bloco de sistema de arquivos real) Um diretório não é um tarball; não fisicamente contém os arquivos sob ele. É apenas uma lista de nomes de arquivos e números de inodes. Portanto, a listagem deainclui apenasb, que é pequena, e o "total" dessa listagem também é pequeno.ls -l a/bmostraráfoo, que é grande, e o "total" será grande. -
Como o total é a soma dos itens exibidos, as opções
lsque alteram o que é exibido também alteram o total.mv a/b/foo a/b/.foo ls -l a/bComo
.foocomeça com um ponto, ele não é mais incluído na lista de diretórios. Então o "total" agora é 0, para um diretório com um arquivo enorme nele! Adicione o-aflag e.fooaparece eo "total" se torna grande novamente. Na verdade, o "total" é maior que a contagem de blocos para.foo, porque também inclui as contagens de blocos para.(a/b) e..(a). O-Aflag é melhor (omitem.e.., mas incluem todos os outros dotfiles). -
Contagens de bloco não são completamente previsíveis em tamanhos de arquivo porque sistemas de arquivos diferentes têm tamanhos de bloco diferentes (assim, um arquivo contendo 1 byte será relatado como ocupando 1 bloco em um sistema de arquivos com blocos de 1024 bytes e 4 blocos em um sistema de arquivos com blocos de 4096 bytes), e também porque a contagem inclui sobrecarga do sistema de arquivos ( blocos indiretos que são onde ele armazena a lista principal de blocos), e porque há arquivos esparsos - um grande pedaço de zeros em um arquivo pode ser (mas não sempre ser) armazenado de uma maneira eficiente que não ocupe nenhum bloco adicional.