J'ai besoin d'obtenir la taille du répertoire dans le terminal à des fins de signature. J'utilise la commande suivante :
du -s /path/to/dir
Je multiplie le résultat par la taille de bloc UNIX traditionnelle (512 octets) et j'obtiens la taille réelle du répertoire en octets. Cependant, la fenêtre de dialogue "Lire les informations" du Finder affiche une taille légèrement inférieure à celle calculée avec la commande du terminal. Et il semble que cela soit reproductible sur n'importe quel dossier/bundle. Qu'est-ce que je rate ?
Réponse acceptée :
Normalement, du
affiche des informations sur l'utilisation du disque (d'où son nom vient). Gardez à l'esprit que
disk usage != sum of file sizes
Parce que chaque fichier occupe un certain nombre de blocs sur le système de fichiers (voir man mkfs.ext2
par exemple). Cela signifie que seulement dans une situation très rare, l'utilisation du disque d'un fichier est égale à sa taille réelle - pour cela, la taille doit être exactement un multiple de la taille du bloc.
Considérez les blocs de système de fichiers comme des boîtes contenant des parties de fichiers - chacune ne peut contenir qu'une partie d'un seul fichier.
Pour la version GNU de du
, consultez le --apparent-size
option.
Une situation encore plus intéressante peut se produire lorsqu'il y a des fichiers clairsemés sur le système de fichiers !