Traté de obtener el tamaño de un directorio (que contiene directorios y subdirectorios) usando el ls
comando con la opción l
. Parece que funciona para archivos ( ls -l file name
), pero si intento obtener el tamaño de un directorio (por ejemplo, ls -l /home
), obtengo solo 4096 bytes, aunque en conjunto es mucho más grande.
command-line
ls
disk-usage
Abdul Al Hazred
fuente
fuente
-h
opción útil que puede agregar a la-l
opción (es decir,ls -lh
para obtener los tamaños de los archivos que se imprimirán en notación amigable para los humanos como 1.1M en lugar de 1130301. La "h "en eldu -hs
comando que @sam dio como respuesta a su pregunta sobre directorios también significa" legible por humanos ", y también aparece en eldf -h
que se muestran las cantidades legibles por humanos de espacio libre y utilizado en el disco.Respuestas:
du -sh file_path
Explicación
du
El comando ( d isc u sage) estima el uso del espacio file_pathLas opciones
-sh
son (desdeman du
):Para verificar más de un directorio y ver el total, use
du -sch
:fuente
du
y también le da la forma de buscar más detallesman du
...find
ejemplo, para contar la cantidad de espacio en subdirectorios específicos en la ruta actual:$ find . -type d -name "node_modules" -prune -exec du -sh {} \;
Solo usa el
du
comando:le dará el uso acumulativo del disco de todos los directorios, archivos, etc. no ocultos en el directorio actual en formato legible por humanos.
Puede usar el
df
comando para conocer el espacio libre en el sistema de archivos que contiene el directorio:fuente
du -sh *
comienza a arrojar errores de "opción desconocida" si alguno de los archivos en ese directorio comienza con un guión. Más seguro de hacerdu -sh -- *
du -sh *
no muestra el uso de memoria de carpetas ocultasdu -sh -- * .*
para incluir archivos de puntos. Esto es útil para incluir un.git
directorio posiblemente grande , por ejemplo. Alternativamente, en zsh puedesetopt globdots
glob dotfiles por defecto.--
? Sé que se aplica a las funciones integradas de shell para finalizar los argumentos de opción, perodu
no es una función integrada, y no veo este uso documentado paradu
: linux.die.net/man/1/du-b
(--apparent-size
)du
es tu amigo. Si solo quieres saber el tamaño total de un directorio, salta a él y ejecuta:¡¿Si también desea saber qué subcarpetas ocupan cuánto espacio en disco ?! Puede extender este comando a:
que le dará el tamaño de todas las subcarpetas (nivel 1). La salida se ordenará (la carpeta más grande en la parte superior).
fuente
ncdu
los archivos están ordenados por tamaño descendente de forma predeterminada.du
puede ser complicado de usar ya que aparentemente tiene que pasar 100 argumentos para obtener una salida decente. Y descubrir el tamaño de las carpetas ocultas es aún más difícil.Haz tu vida fácil y útil
ncdu
.Obtiene resúmenes por carpeta que son fácilmente navegables.
fuente
ncdu
es genial, siempre busco este comando cuando lo olvido. Es rápido, fácil de navegar y ayuda a encontrar fácilmente carpetas grandes. Para su información, también está disponible para macOS y probablemente para todas las máquinas Linux.ncdu
presionando lad
teclaOtros lo han mencionado
du
, pero también me gustaría mencionar Ncdu , que es una versión de ncursesdu
y proporciona interactividad: puede explorar la jerarquía de directorios directamente y ver los tamaños de los subdirectorios.fuente
El
du
comando muestra el uso de disco del archivo.La
-h
opción muestra resultados en forma legible para humanos (por ejemplo, 4k, 5M, 3G).fuente
Todos los ejemplos anteriores le indicarán el tamaño de los datos en el disco (es decir, la cantidad de espacio en disco que utiliza un archivo en particular, que generalmente es mayor que el tamaño real del archivo). Hay algunas situaciones en las que esto no le dará un informe preciso, si los datos no se almacenan realmente en este disco en particular y solo existen referencias de inodo.
En su ejemplo, ha utilizado ls -l en un solo archivo, que habrá devuelto el tamaño real del archivo, NO su tamaño en el disco.
Si desea conocer los tamaños de archivo reales, agregue la opción -b a du.
fuente
personalmente creo que esto es lo mejor, si no quieres usar
ncdu
fuente
Esto muestra cuánto espacio en disco le queda en la unidad actual y luego le indica cuánto ocupa cada archivo / directorio. p.ej,
fuente
Yo uso este comando como root :
fuente
encuentre todos los archivos en el directorio actual de forma recursiva y resuma su tamaño:
fuente
-not -type d
sumar no solo los tamaños de los archivos ordinarios (-type f
) sino también los tamaños de los enlaces simbólicos, etc.Aquí hay una función para sus .bash_aliases
salida de muestra:
para subdirs:
fuente
Una variante más:
fuente
Tenga en cuenta que
du
imprime el espacio que ocupa un directorio en los medios, que generalmente es más grande que el tamaño total de todos los archivos en el directorio, porquedu
tiene en cuenta el tamaño de toda la información auxiliar que se almacena en los medios para organizar el directorio de conformidad con formato de sistema de archivos.Si el sistema de archivos es compresible,
du
puede generar un número aún menor que el tamaño total de todos los archivos, ya que los archivos pueden estar comprimidos internamente por el sistema de archivos y, por lo tanto, ocupan menos espacio en los medios que solo la información sin comprimir que contienen. Lo mismo si hay archivos dispersos.si hay enlaces duros en el directorio, también
du
puede imprimir un valor más pequeño porque varios archivos diferentes en el directorio hacen referencia a los mismos datos en los medios.Para obtener el tamaño total directo de todos los archivos en el directorio, se puede usar la siguiente expresión de shell de una línea (suponiendo un sistema GNU):
o incluso más corto:
Simplemente suma los tamaños de todos los archivos que no son de directorio en el directorio (y sus subdirectorios de forma recursiva) uno por uno. Tenga en cuenta que para los enlaces simbólicos, informa el tamaño del enlace simbólico (no del archivo al que apunta el enlace simbólico).
fuente
Puedes usar
du -sh directory/
y
du -sh filename
para saber el espacio ocupado por la carpeta o archivo.
df -h
mostrará el uso del disco en formato legible para humanos -h hace eso.
También hay un programa basado en GUI llamado
Disk Usage Analyzer
.fuente
Aquí hay un script POSIX que funcionará con:
Fuente
fuente