Esta pregunta ya tiene una respuesta aquí:
¿Qué comando utilizo para encontrar el tamaño de todos los archivos (recursivamente) en un directorio Linux o Mac OS X?
linux
macos
mac
command-line
Daryl Spitzer
fuente
fuente
-k
opción para usar el tamaño de bloque de 1K-bytedu
, yo usoncdu
, puede encontrar la referencia aquí, remysharp.com/2018/08/23/cli-improvedRespuestas:
La versión BSD de
du
utilizada en OS X informa el tamaño con bloques de 512 bytes: los tamaños se redondean esencialmente al siguiente valor de 512 bytes. Esto le indica el espacio en el disco, que es mayor que la cantidad de datos. Si tiene muchos archivos pequeños, la diferencia puede ser grande.Aquí hay un ejemplo.
Este es el valor con regular
du
. Está en bloques de 512 bytes:La
-h
bandera da como resultado un número más legible, en kilobytes. Como se esperaba, es la mitad del número de bloques de 512 bytes:Finalmente, puede usar
find
yawk
darle la suma de bytes reales en los archivos. Esto es un poco lento, pero funciona:Este valor coincide exactamente con el número informado por la ventana Obtener información de Finder. (No hay bifurcaciones extrañas o xattrs en este conjunto de archivos). Es significativamente menor que el valor informado por
du
.Así es como funciona: obtiene una lista de todos los archivos y los pasa a
ls -l
; entoncesawk
se usa para contar los bytes. La-type f
bandera está ahí para que solo se envíen archivos (y no directorios)ls
. Sin ese indicador, también enviará nombres de directoriols
, y cada archivo se mostrará dos veces: una vez como un archivo individual y otra como un elemento en el directorio.La versión GNU de
du
puede dar valores en bytes reales en lugar de bloques. Es lamentable que la versión BSD dedu
no sea tan flexible.fuente
du
utilizo coreutils de GNU con la-b
opción, obtengo un resultado diferente que con sufind
tubería. Para un directorio de 36 GB, obtengo una diferencia de 82 KB.Mostrar el tamaño de un solo archivo
du -h path_to_a_file
Muestra el tamaño de los contenidos de un directorio, cada subdirectorio y cada archivo individual:
du -h path_to_a_directory
Mostrar el tamaño de los contenidos de un directorio:
du -sh path_to_a_directory
fuente
du -sch
si quieres algo más fácil de leer.du : le dice al disco que no use el tamaño del archivo .
el código de terminal anterior (estoy en osx 10.6) me ofrece el mejor resultado y es mucho más rápido que "find ... -exec"
un punto de referencia rápido
fuente
find . -type f -print0 | xargs -0 stat -c%s | awk '{b+=$1} END {print b}'
Puede usar
du -ah .
las pantallas que muestran los tamaños de todos los archivos y directorios de forma recursiva.Esto se puede combinar con
sort
, por lo que verá los 20 directorios más grandes en la carpeta actual:Nota: la opción
-h
parasort
no está disponible en OSX / BSD, por lo que debe instalarsort
desdecoreutils
(p. Ej., Víabrew
) y aplicar la ruta bin aPATH
, p. Ej.De lo contrario, use:
fuente
brew install coreutils
contrario, use el comando de clasificación BSD al final sin-h
.Combiné todos sus approuches y lo combiné con una salida legible por humanos, el resultado es:
Enlace a la esencia: https://gist.github.com/mlegenhausen/9365461
fuente