1 votes

Il y a une incohérence entre la sortie de ls et du df

En totalisant les tailles des fichiers et répertoires retournés par ls, on obtient une valeur différente de celle donnée par df ou du. Les commandes df et du me donnent le même résultat, donc je n'ai pas ce problème fréquemment, mais je sais que ce dispositif/dossier était "vide" donc je voulais savoir pourquoi cet espace utilisé "non vide".

Ma première pensée était pour les fichiers cachés, donc j'ai cherché et j'ai trouvé l'option -a mais les chiffres ne correspondent pas encore [24.4 Ko de ls -lah est très différent de 5.1 Mo avec df et du : sortie à la fin du message]. Une autre chose étrange est la sortie d'e2fsck, il semble y avoir 13 fichiers [., .., lost+found, mais comment trouver les 10 restants?]

Est-ce que quelqu'un sait ce que je rate encore?


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: propre, 13/117360 fichiers, 8693/468990 blocs

4voto

Stewart Points 1385

ls ne montre pas la taille du contenu d'un répertoire. Elle montre la taille utilisée pour stocker les métadonnées décrivant le répertoire. Cette taille dépendra du nombre de fichiers dans le répertoire et de la longueur de leurs noms (et du répertoire lui-même), et non de leurs tailles. Pour illustrer, je vais créer différents nombres de fichiers vides (taille 0) :

## 10 fichiers
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 fichiers
$ 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

Comme vous pouvez le voir ci-dessus, la taille rapportée par ls a changé, malgré que la taille réelle du répertoire reste la même.

Donc, vos fichiers manquants sont probablement dans le répertoire lost+found, vérifiez là-bas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X