Compreendendo o comportamento de ls -s

Compreendendo o comportamento de ls -s

Aqui está o resultado da execução ls -l em um diretório

total 28
-rwxrw-r-- 1 pr3t3nd pr3t3nd  188 Nov 20 20:28 exo1.sh
-rwxrw-r-- 1 pr3t3nd pr3t3nd  202 Nov 20 20:52 exo2_fonction.sh
-rwxrw-r-- 1 pr3t3nd pr3t3nd  176 Nov 20 20:30 exo2.sh
-rw-rw-r-- 1 pr3t3nd pr3t3nd  364 Nov 20 22:24 file
-rw-rw-r-- 1 pr3t3nd pr3t3nd 2912 Nov 20 23:47 file2
drwxrwxr-x 2 pr3t3nd pr3t3nd 4096 Nov 20 23:35 rep
-rwxrw-r-- 1 pr3t3nd pr3t3nd  102 Nov 20 23:45 script.sh

Aqui está o resultado da execução ls -sno mesmo diretório

total 28
4 exo1.sh           4 exo2.sh  4 file2  4 script.sh
4 exo2_fonction.sh  4 file     4 rep

Por que o tamanho de todos os arquivos é 4?

Responder1

ls -lexibe o tamanho do arquivo na 5ª coluna. ls -snão exibe o tamanho do arquivo. O que ele exibe é otamanho alocado. Isso não é a mesma coisa.

O tamanho de um arquivo é uma propriedade do arquivo. É o número de bytes que constituem o conteúdo do arquivo, nem mais, nem menos.

O tamanho alocado de um arquivo é uma propriedade de como o arquivo é armazenado. Na maioria dos casos, o tamanho alocado é um pouco maior que o tamanho, porque os sistemas de arquivos dividem o espaço em blocos e o tamanho alocado é o tamanho total dos blocos usados ​​para armazenar o arquivo. A menos que o tamanho do arquivo seja um múltiplo do tamanho do bloco, haverá um bloco que não será utilizado por completo.

Você está vendo arquivos cujo tamanho é inferior a 4kB e cujo tamanho alocado é exatamente 4kB. Isso é muito comum: você tem um sistema de arquivos com tamanho de bloco de 4kB.

Veja tambémQuando `ls -s` imprime "0"etamanho do bloco de arquivo - diferença entre stat e ls

informação relacionada