it-swarm-es.com

¿Cómo determino el tamaño total de un directorio (carpeta) desde la línea de comando?

¿Existe un comando simple para mostrar el tamaño total agregado (uso del disco) de todos los archivos en un directorio (carpeta)?

He intentado esto, y no hacen lo que quiero:

  • ls -l, que solo muestra el tamaño de los archivos individuales en un directorio, ni
  • df -h, que solo muestra el espacio libre y usado en mis discos.
755
David Barry

El comando du "resume el uso del disco de cada ARCHIVO, recursivamente para directorios", por ejemplo,

du -hs /path/to/directory
  • -h es obtener los números "legibles por humanos", p. obtener 140M en lugar de 143260 (tamaño en KBytes)
  • -s es para resumen (de lo contrario, obtendrá no solo el tamaño de la carpeta sino también para todo in la carpeta por separado)

Mientras usa -h puede ordenar los valores legibles por humanos usando

du -h | sort -h

La bandera -h en sort considerará valores de tamaño "legibles para humanos".


Si desea evitar enumerar recursivamente todos los archivos y directorios, puede proporcionar el parámetro --max-depth para limitar la cantidad de elementos que se muestran. Más comúnmente, --max-depth=1

du -h --max-depth=1 /path/to/directory
1243
Marcel Stimberg

Recientemente encontré una gran herramienta interactiva basada en ncurses, que rápidamente le brinda una visión general sobre los tamaños de directorio. Busqué ese tipo de herramienta durante años.

  • desglose rápido a través de la jerarquía de archivos
  • puedes eliminar p. enormes archivos temporales desde el interior de la herramienta
  • extremadamente rápido

Piense en ello como baobab para la línea de comando:

apt-get install ncdu
164
geekQ

Esto encuentra el tamaño de forma recursiva y lo coloca junto al nombre de cada carpeta, junto con el tamaño total en la parte inferior, todo en formato humano

du -hsc *
51
Brad

¡Disfrutar!

du foldername

Más información sobre ese comando aquí

16
myusuf3

tree es otro comando útil para este trabajo:

Simplemente instálelo a través de Sudo apt-get install tree y escriba lo siguiente:

tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files

De árbol de hombre :

-h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo‐
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
10
αғsнιη

A continuación se muestra lo que estoy usando para imprimir el tamaño total, la carpeta y el archivo:

$ du -sch /home/vivek/* | sort -rh

Detalles

 ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons

Salida

 70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
9
vivekyad4v

Las respuestas han hecho obvio que du es la herramienta para encontrar el tamaño total de un directorio. Sin embargo, hay un par de factores a considerar:

  • Ocasionalmente, la salida du puede ser engañosa porque informa el espacio asignado por el sistema de archivos, que puede ser diferente de la suma de los tamaños de los archivos individuales. Por lo general, el sistema de archivos asignará 4096 bytes para un archivo, incluso si almacenó solo un carácter en él.

  • Diferencias de salida debido a la potencia de 2 y la potencia de 10 unidades. El conmutador -h a du divide el número de bytes entre 2 ^ 10 (1024), 2 ^ 20 (1048576), etc. para proporcionar una salida legible por humanos. Muchas personas podrían estar más acostumbradas a ver potencias de 10 (por ejemplo, 1K = 1000, 1M = 1000000) y se sorprenderían con el resultado.

Para encontrar la suma total de tamaños de todos los archivos en un directorio, en bytes, haga:

find <dir> -ls | awk '{sum += $7} END {print sum}'

Ejemplo:

$ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
4
pdp

Solo para el tamaño del directorio en un formato legible, use lo siguiente:

du -hs directoryname

Probablemente esto no se encuentre en la sección correcta, pero desde la línea de comando, podría intentar:

ls -sh filename

El -s es el tamaño y el -h es legible para los humanos.

Use -l para mostrar en la lista ls, como a continuación:

ls -shl
1
Shiv Singh

du /foldername es el comando estándar para conocer el tamaño de una carpeta. Se recomienda encontrar las opciones leyendo la página del manual:

man du

Debe leer la página de manual (disponible en línea ) antes de usar el comando.

0

Aquí hay un script POSIX que funcionará con:

  • Un archivo
  • Archivos
  • Un directorio
  • Directorios
#!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'

Fuente

0
Steven Penny

Si su directorio deseado tiene muchos subdirectorios, use lo siguiente:

$ cd ~/your/target/directory
$ du -csh 

-c, --total produce un gran total
- s, --summarize muestra solo un total para cada argumento
- h, - tamaños de impresión legibles por humanos en formato legible por humanos (por ejemplo, 1K 234M 2G)

que luego produciría un total general del uso de memoria de todos los archivos/carpetas en el directorio actual.

0
kmario23