Mauvaise sortie de du?

12

Je pense que ma commande est confuse.

% du -shc DIR ...
...
6123941496      total

% du -shc DIR ...
...
6.1G    total

% du -sc --si DIR ...
...
6.6G    total

J'ai essayé de donner LANG=Cet de revérifier le résultat dans une feuille de calcul. Il semble que -h génère déjà des puissances de 1000 (--si), et --si donne une mauvaise réponse. Je pense que la bonne réponse devrait être 5.7G pour -h et 6.1G pour --si. Alors qu'est-ce qui se passe ici?

% du --version
du (GNU coreutils) 8.20
...

% uname -a
Linux XXX 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux
Gerry Lufwansa
la source
3
Veuillez inclure les commandes réelles. Que ...représentent les? Vous semblez avoir exécuté la même commande deux fois et avoir obtenu une sortie différente, n'est-ce pas? Avez-vous lu l'explication des modificateurs de taille dans man du?
terdon

Réponses:

18

Répétez vos tests à l'aide du --apparent-sizecommutateur.

$ du -shc --apparent-size DIR ...

extrait de la page du man

--apparent-size
       print  apparent sizes, rather than disk usage; although the apparent size is
       usually smaller, it may be larger due to holes in (`sparse') files, internal 
       fragmentation, indirect blocks, and the like
slm
la source
1
Ah, donc apparemment -b est équivalent à '--apparent-size --block-size = 1'. J'ai manqué ça. L'utilisation de «du -shc --apparent-size» donne désormais correctement 5.7G. Merci!
Gerry Lufwansa
@GerryLufwansa - oui, lorsque vous commencez à mixer dans différents systèmes de fichiers ou montés CIFS, cela devient vraiment perceptible. J'utilise toujours soit -bou --apparent-size.
slm
... et la différence peut devenir vraiment énorme avec les systèmes HSM, où les fichiers migrés rapportent 0 (ou quelque chose comme quelques ko) sans --apparent-size.
Ansgar Esztermann
Une solution pour le duMac OS X?
Alec Jacobson