ls discrepância com du df output

1

A adição dos tamanhos de arquivos e diretórios retornados por ls fornece um valor diferente daquele fornecido por df ou du . Os comandos df e du me deram a mesma saída, então eu não tenho esse problema freqüente, mas sei que esse era um dispositivo / pasta "vazio", então eu queria saber por que aquele "não vazio" era usado espaço.

Meu primeiro pensamento foi sobre arquivos ocultos, então eu procurei e encontrei a opção -a, mas os números ainda não foram adicionados [24,4 KB de ls -lah é muito diferente de 5,1 MB com df e du: saída no final da mensagem]. Outra coisa estranha é a saída do e2fsck, parece que existem 13 arquivos [., .., lost + found, mas como encontrar os 10 restantes?]

Alguém sabe o que eu ainda sinto falta?


cd /mnt

# ls -lah
total 24
drwxr-xr-x    3 root     root       20.0K May  7 09:36 .
drwxrwxr-x   17 root     root         420 May  7 09:26 ..
drwx------    2 root     root        4.0K Apr 21 13:42 lost+found


# df -h /mnt
Filesystem                Size      Used Available Use% Mounted on
mmcblk0p1                 1.8G      5.1M      1.7G   0% /mnt


# du -d 0 -h /mnt
5.1M    /mnt


# umount /mnt
# e2fsck -C 0 /dev/mmcblk0p1
e2fsck 1.42.12 (29-Aug-2014)
/dev/mmcblk0p1: clean, 13/117360 files, 8693/468990 blocks
    
por Antonino 11.05.2015 / 13:35

1 resposta

4

ls não mostra o tamanho do conteúdo de um diretório. Mostra o tamanho usado para armazenar os metadados que descrevem o diretório. Esse tamanho dependerá do número de arquivos no diretório e do tamanho dos nomes deles (e do diretório), e não de seus tamanhos. Para ilustrar, criarei diferentes números de arquivos vazios (tamanho 0):

## 10 files
for i in {1..10}; do touch foo/$i; done
$ ls -l
drwxr-xr-x 2 terdon terdon 4096 May 11 16:36 foo
$ du -sc foo/* | grep total
0   total

## 100000 files
$ touch foo/file{1..100000}
ls -l
drwxr-xr-x 2 terdon terdon 2801664 May 11 16:37 foo
$ du -sc foo/* | grep total
0   total

Como você pode ver acima, o tamanho relatado por ls mudou, apesar do tamanho real do diretório ser o mesmo.

Assim, provavelmente, seus arquivos ausentes estão no diretório lost+found , confira.

    
por terdon 11.05.2015 / 15:40