Poderíamos analisar um arquivo pelo tamanho usando o comando du
.
$> du Desktop/datasheet-3347.pdf
3564 Desktop/datasheet-3347.pdf
No entanto, há uma pequena captura. O que queremos dizer com o arquivo vazio? Esteja ciente de que existem arquivos com caracteres não imprimíveis. Aqui está um exemplo:
$> touch myFile.txt
$> echo '' > myFile.txt
$> du myFile.txt
4 myFile.txt
Olha! Eu ecoei o espaço vazio no arquivo e, ainda assim, ele informa algum tamanho em bytes? como pode ser ?! Bem, ainda escrevemos uma única nova linha no arquivo.
Como mostrado em esta brilhante resposta , os arquivos em discos estão em partes de 4096 bytes. Quando escrevemos apenas alguns bytes no disco, o sistema operacional ainda aloca um pedaço de 4096 bytes. Então, tecnicamente, o arquivo aqui está vazio do ponto de vista legível e, ainda assim, contém bytes.
Podemos criar uma referência a um arquivo, que será de 0 bytes, mas, assim que tentarmos preenchê-lo com qualquer dado, daremos a ele 4096 bytes
$> touch myFile2.txt
$> du myFile2.txt
0 myFile2.txt
Mas por que o diretório é 4096 bytes ? diretórios são tipos de listas. Depois de criar um diretório, mesmo vazio, ele contém informações (para os interessados em linguagem de programação C, que é a estrutura dirent, que contém o número do inode, o tamanho do registro, o tipo e o nome; lookup dirh.h). Portanto, mesmo que o diretório não tenha arquivos, ele conterá informações sobre si mesmo.