Digamos que quiero obtener el tamaño de cada directorio de un sistema de archivos Linux. Cuando yo uso ls -la Realmente no consigo el tamaño resumido de las carpetas.
Si yo uso df Obtengo el tamaño de cada sistema de archivos montado, pero eso tampoco me ayuda. Y con du Obtengo el tamaño de cada subdirectorio y el resumen de todo el sistema de archivos.
Pero quiero tener solo el tamaño resumido de cada directorio dentro de la carpeta ROOT del sistema de archivos. ¿Hay algún comando para lograr eso?

--totalLa bandera me ayudó. P.ej.du -sh --total applications/*. askubuntu.com/a/465436/48214Respuestas:
Esto hace lo que buscas:
Lo que esto significa:
-spara dar sólo el total de cada argumento de línea de comando.-hpara los sufijos legibles por humanos comoMpara megabytes yGpara gigabytes (opcional)./*simplemente se expande a todos los directorios (y archivos) en/.Nota: los archivos de puntos no están incluidos; correr
shopt -s dotglobpara incluir esos también.También es útil la clasificación por tamaño:
Aquí:
-hasegura quesortinterpreta los sufijos legibles por humanos correctamente.fuente
shopt -s dotglobIncluirlos en el conde./*, p.ej../para el directorio actual o./*para cada elemento en el directorio actual../*/para obtener solo subcarpetas y no todos los elementosdu -sh /* | sort -hsortno tiene-h, necesitas dejarlo fuera dedutambién, de lo contrario la clasificación mezclará kilo / mega / gigabytes.du -s /* | sort -nr.A menudo necesito encontrar los directorios más grandes, así que para obtener una lista ordenada que contiene los 20 directorios más grandes, hago esto:
En este caso los tamaños serán reportados en megabytes.
fuente
Me gusta usar Ncdu para eso, puede usar el cursor para navegar y profundizar a través de la estructura de directorios que funciona realmente bien.
fuente
bpara caer en un shell en el directorio.Las respuestas existentes son muy útiles, tal vez a algunos principiantes (como yo) también les resulte útil.
Bucle muy básico, pero para mí fue un buen comienzo para otras operaciones relacionadas con el tamaño:
Muy similar a la primera respuesta y casi el mismo resultado que 1.), pero me tomó algo de tiempo entender la diferencia de * a ./* si en un subdirectorio:
fuente
El seguimiento
duLa invocación debería funcionar en sistemas BSD:fuente
du(Ubuntu 10.4) no tiene un-dopción. ¿En qué sistema estás?du -sk /*. Odio el-kcosas tan mucho Linux-htotalmente rocas--max-depthEsto no es facil los
duel comando muestra archivos y carpetas (predeterminado) o solo los tamaños de todos los elementos que especifique en la línea de comandos (opción-s).Para obtener los elementos más grandes (archivos y carpetas), ordenados, con tamaños legibles por humanos en Linux:
Esto te enterrará en una tonelada de pequeños archivos. Puedes deshacerte de ellos con
--threshold(1 MB en mi ejemplo):La ventaja de este comando es que incluye carpetas de puntos ocultos (carpetas que comienzan con
.).Si realmente solo quieres las carpetas, necesitas usar
findpero esto puede ser muy, muy lento ya queduHabrá que escanear muchas carpetas varias veces:fuente
Ten en cuenta que no puedes comparar directorios con
duEn diferentes sistemas / máquinas sin estar seguros, ambos comparten el mismo tamaño de bloque del sistema de archivos. Esto puede contar si rsync algunos archivos de una máquina Linux a un nas y desea comparar el directorio sincronizado por su cuenta. Puede obtener diferentes resultados condudebido a los diferentes tamaños de bloques ....fuente
También es posible que desee revisar xdiskusage . Le dará la misma información, pero se muestra gráficamente, y permite profundizar (muy útil). Hay otras utilidades similares para KDE e incluso Windows.
fuente
Usted podría usar
lsen conjunto conawk:La salida de
lsse canaliza aawk.awkcomienza a procesar los datos. El delimitador estándar es el espacio. La variable de sumatotse inicializa a cero; la siguiente declaración se ejecuta para cada fila / línea producida porls. Simplemente incrementatotcon el tamaño.$5representa la quinta columna (producida porls). Al final dividimos por (1024 * 1024) para sumar en megabytes.Si desea convertir esto en un script o función (.bashrc), también puede usarlo para obtener el tamaño de ciertos subconjuntos de directorios, de acuerdo con los tipos de archivo.
Si quieres información de todo el sistema,
kdirstatpuede ser útil!fuente