Dans quelles circonstances ls -lh
afficherait un total inférieur à la somme des dossiers individuels? Par exemple:
$ ls -lh /var/lib/nova/instances/_base
total 100G
-rw-rw-r-- 1 nova nova 4.3M 2012-02-14 14:07 00000001
-rw-rw-r-- 1 nova nova 5.7M 2012-02-14 14:07 00000002
-rw-rw-r-- 1 nova nova 42G 2012-03-08 15:24 1574bddb75c78a6fd2251d61e2993b5146201319.part
-rw-rw-r-- 1 libvirt-qemu kvm 24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm
-rw-r--r-- 1 libvirt-qemu kvm 65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4
-rw-rw-r-- 1 libvirt-qemu kvm 160G 2012-02-24 16:06 ephemeral_0_160_None
-rw-rw-r-- 1 libvirt-qemu kvm 80G 2012-02-24 22:38 ephemeral_0_80_None
-rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 22:37 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
-rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 11:09 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f_sm
Edit: montrant maintenant quelques drapeaux supplémentaires sont par demande en commentaire:
$ ls -aiFlh /var/lib/nova/instances/_base/
total 143G
29884440 drwxrwxr-x 2 nova nova 4.0K 2012-03-08 15:45 ./
29884427 drwxr-xr-x 6 nova nova 4.0K 2012-03-08 15:05 ../
29884444 -rw-rw-r-- 1 nova nova 4.3M 2012-02-14 14:07 00000001
29884445 -rw-rw-r-- 1 nova nova 5.7M 2012-02-14 14:07 00000002
29884468 -rw-r--r-- 1 nova nova 65G 2012-03-08 15:59 1574bddb75c78a6fd2251d61e2993b5146201319.converted
29884466 -rw-rw-r-- 1 nova nova 58G 2012-03-08 15:35 1574bddb75c78a6fd2251d61e2993b5146201319.part
29884446 -rw-rw-r-- 1 libvirt-qemu kvm 24M 2012-02-14 14:07 77de68daecd823babbb58edb1c8e14d7106e83bb_sm
29884467 -rw-r--r-- 1 libvirt-qemu kvm 65G 2012-03-02 12:43 bd307a3ec329e10a2cff8fb87480823da114f8f4
29884443 -rw-rw-r-- 1 libvirt-qemu kvm 160G 2012-02-24 16:06 ephemeral_0_160_None
29884442 -rw-rw-r-- 1 libvirt-qemu kvm 80G 2012-02-24 22:38 ephemeral_0_80_None
29884447 -rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 22:37 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
29884441 -rw-r--r-- 1 libvirt-qemu kvm 10G 2012-02-24 11:09 fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f_sm
files
ls
disk-usage
Lorin Hochstein
la source
la source
ls -aiFl
hdu -h --total
pour le même dir?Réponses:
Cela se produira si vous avez des fichiers clairsemés:
Un fichier clairsemé est un fichier qui n'a pas été rempli de blocs de système de fichiers (ou seulement partiellement). Lorsque vous lisez une zone non peuplée d'un fichier clairsemé, vous obtenez des zéros. Ces zones vides ne nécessitent pas d'espace disque réel et le «total» signalé par
ls
correspond à l'espace disque occupé par les fichiers (tout commedu
).la source
-s
/--size
"Imprimer l'allocation de disque de chaque fichier à gauche du nom de fichier. Il s'agit de la quantité d'espace disque utilisée par le fichier, qui est généralement un peu plus que la taille du fichier, mais elle peut être moins si le fichier a des trous . " L'-l
option imprime bien sûr également la taille.Veuillez noter que la sortie donnée par
ls -l
etdu
a une différence subtile mais très importante. Essaye ça:Maintenant
Tandis que
C'est parce que le système de fichiers alloue la taille en morceaux de 4096 (sur ma boîte Linux). Il s'appelle IO Block. Vous pouvez le voir en:
la source
stat
ma propositionempty-file
et vous verrez que le nombre de blocs est de 0, même si le fichier a une taille de 1G.stat
signale le nombre équivalent de blocs de taille ancienne nécessaires pour stocker tous les blocs 4K (soit 8 fois le nombre réel de blocs 4K).La réponse acceptée est absolument correcte, juste si vous voulez voir la taille apparente, vous pouvez utiliser:
du --apparent-size
la source