Salida inconsistente del comando `du`

Salida inconsistente del comando `du`

¿Por qué la salida de

du -sch ./

no idéntico a

du -sch ./*

Por ejemplo, ejecuté du -schen el directorio de inicio de mi usuario y obtuve 51 GB, pero al ejecutar du -sch *en el mismo directorio se obtuvieron 47 GB. Al principio pensé que tal vez se trataba de archivos ocultos, pero eso no explica casi 4 GB de archivos/carpetas ocultos.

Leí el manual de la utilidad de disco pero no pude encontrar una explicación.

Respuesta1

Al principio pensé que tal vez se trataba de archivos ocultos, pero eso no explica casi 4 GB de archivos/carpetas ocultos.

¿Cómo midiste esto? creo que ustedhacertenga 4 GB de archivos/directorios ocultos, o tal vez incluso más (en cierto sentido) si hay enlaces físicos involucrados.

Esto le dirá (lo dejé -hpara obtener resultados más exactos; tailes solo para pasar el "total"; probado en bash):

du -sc ./{.[!.],..?}*  | tail -n 1   # hidden
du -sc ./*             | tail -n 1   # non-hidden
du -sc ./{.[!.],..?,}* | tail -n 1   # hidden and non-hidden by wildcards
du -sc ./              | tail -n 1   # directory as a whole

(sintaxis tomada deesta respuesta).

El primer comando es lo que te falta. Obtenga una suma del primer y segundo resultado; será igual a los dos últimos resultados, a menos que...

A menos que haya archivos vinculados entre la parte oculta y la no oculta. Si es así, la suma será aún mayor porqueEstos archivos se contarán dos veces cuando los sumes a mano, pero solo una vez cuando dulos sumes en una sola pasada.. En este caso, los archivos/directorios ocultos ocupan incluso más espacio de lo que cree (aunque parte de este espacio se "comparte" con la parte no oculta). Tenga en cuenta que hay-lopción deduque controla este comportamiento:

-l, --count-links
cuente los tamaños muchas veces si está vinculado

información relacionada