¿Salida incorrecta de du?


12

Creo que mi comando está confundido.

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

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

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

He intentado dar LANG=Cy verificar el resultado en una hoja de cálculo. Parece que -h ya sale usando potencias de 1000 (--si), y --si da una respuesta incorrecta. Creo que la respuesta correcta debería ser 5.7G para -h y 6.1G para --si. Entonces, ¿qué pasa aquí?

% 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
Por favor incluya los comandos reales. ¿Qué ...representan los? Parece que ha ejecutado exactamente el mismo comando dos veces y ha obtenido resultados diferentes, ¿es así? ¿Has leído la explicación de los modificadores de tamaño en man du?
terdon

Respuestas:


18

Repita sus pruebas usando el --apparent-sizeinterruptor.

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

extracto de la página de 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

1
Ah, entonces aparentemente -b es equivalente a '--apparent-size --block-size = 1'. Me lo perdí. Usar 'du -shc --apparent-size' ahora da correctamente 5.7G ahora. ¡Gracias!
Gerry Lufwansa

@GerryLufwansa: sí, cuando comienzas a mezclar en diferentes sistemas de archivos o CIFS montados, se vuelve realmente notable. Yo siempre uso cualquiera -bo --apparent-size.
slm

... y la diferencia puede ser realmente enorme con los sistemas HSM, donde los archivos migrados informan 0 (o algo así como unos pocos KB) sin ellos --apparent-size.
Ansgar Esztermann

¿Alguna solución para el duque viene con Mac OS X?
Alec Jacobson
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.