La version BSD de du
utilisée dans OS X rapports taille avec des blocs de 512 octets - les tailles sont essentiellement arrondies à la valeur suivante 512 octets. Cela vous indique l'espace sur le disque, qui est plus grand que la quantité de données. Si vous avez beaucoup de petits fichiers, la différence peut être grande.
Voici un exemple.
C'est la valeur avec regular du
. C'est par blocs de 512 octets:
$ du -s
248 .
L' -h
indicateur génère un nombre plus lisible, en kilo-octets. Comme prévu, il s'agit de la moitié du nombre de blocs de 512 octets:
$ du -hs
124K .
Enfin, vous pouvez utiliser find
et awk
vous donner la somme des octets réels dans les fichiers. C'est un peu lent, mais ça marche:
$ find . -type f -exec ls -l {} \; | awk '{sum += $5} END {print sum}'
60527
Cette valeur correspond exactement au nombre indiqué par la fenêtre Obtenir des informations du Finder. (Il n'y a pas de forks ou xattrs étranges dans cet ensemble de fichiers.) Il est nettement inférieur à la valeur indiquée par du
.
Voici comment cela fonctionne: il obtient une liste de tous les fichiers et les transmet à ls -l
; puis awk
est utilisé pour compter les octets. Le -type f
drapeau est là pour que seuls les fichiers (et non les répertoires) soient envoyés à ls
. Sans cet indicateur, il enverra également les noms de répertoire à ls
, et chaque fichier sera répertorié deux fois: une fois en tant que fichier individuel et une fois en tant qu'élément du répertoire.
La version GNU de du
peut donner des valeurs en octets réels au lieu de blocs. Il est regrettable que la version BSD de du
ne soit pas aussi flexible.
-k
option d'utiliser la taille de bloc de 1