Uscita errata di du?


10

Penso che il mio du command sia confuso.

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

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

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

Ho provato a dare LANG=Ce ricontrollare il risultato in un foglio di calcolo. Sembra che -h sia già in uscita usando potenze di 1000 (--si) e --si dà una risposta sbagliata. Penso che la risposta corretta dovrebbe essere 5,7 G per -h e 6,1 G per --si. Quindi cosa succede qui?

% 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

3
Si prega di includere i comandi effettivi. Cosa ...rappresentano? Sembra che tu abbia eseguito esattamente lo stesso comando due volte e abbia ottenuto un output diverso, vero? Hai letto la spiegazione dei modificatori di dimensione in man du?
terdon

Risposte:


15

Ripeti i test usando l' --apparent-sizeinterruttore.

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

estratto dalla pagina di 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

1
Ah, quindi apparentemente -b equivale a '--apparent-size --block-size = 1'. Ho perso questo. L'uso di 'du -shc --apparent-size' ora ora dà correttamente 5,7G. Grazie!
Gerry Lufwansa,

@GerryLufwansa - sì, quando inizi a missare in diversi filesystem o montati su CIFS, diventa davvero evidente. Uso sempre o -bo --apparent-size.
slm

... e la differenza può diventare davvero enorme con i sistemi HSM, dove i file migrati riportano 0 (o qualcosa come pochi kB) senza --apparent-size.
Ansgar Esztermann,

Qualche soluzione per duciò che viene fornito con Mac OS X?
Alec Jacobson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.