Al listar el contenido de un directorio usando ls
comando, habrá notado que el tamaño de los directorios es casi siempre de 4096 bytes (4 KB). Ese es el tamaño del espacio en el disco que se utiliza para almacenar la metainformación del directorio, no lo que contiene.
El comando que querrá usar para obtener el tamaño real de un directorio es du
, que es la abreviatura de "uso de disco".
Obteniendo el Tamaño de un Directorio #
El du
El comando muestra la cantidad de espacio de archivo utilizado por los archivos o directorios especificados. Si la ruta especificada es un directorio, du
resume el uso del disco de cada subdirectorio en ese directorio. Si no se especifica una ruta, du
informa el uso del disco del directorio de trabajo actual.
Cuando se invoca sin ninguna opción, du
muestra el uso del disco del directorio dado y cada uno de sus subdirectorios en bytes.
Por lo general, querrá mostrar el espacio ocupado por el directorio en un formato legible por humanos. Por ejemplo, para obtener el tamaño total del /var
directorio, ejecutaría el siguiente comando:
sudo du -sh /var
La salida se verá así:
85G /var
Expliquemos el comando y sus argumentos:
- El comando comienza con
sudo
porque la mayoría de los archivos y directorios dentro de/var
El directorio es propiedad del usuario raíz y los usuarios normales no pueden leerlos. Si omitesudo
eldu
el comando imprimirá "du:no se puede leer el directorio". s
- Mostrar solo el tamaño total del directorio especificado, no mostrar los totales de tamaño de archivo para los subdirectorios.h
- Tamaños de impresión en un formato legible por humanos (h
)./var
- La ruta al directorio que desea obtener el tamaño.
¿Qué sucede si desea mostrar el uso del disco de los subdirectorios de primer nivel? Tienes dos opciones. La primera es usar el símbolo de asterisco (*
) como se muestra a continuación, lo que significa "hacer coincidir todo lo que no comience con un punto (.
)”. El -c
opción le dice a du
para imprimir un total general de todos los tamaños:
sudo du -shc /var/*
24K /var/db
4.0K /var/empty
4.0K /var/games
77G /var/lib
4.0K /var/local
0 /var/lock
3.3G /var/log
0 /var/mail
4.0K /var/opt
0 /var/run
196K /var/spool
28K /var/tmp
85G total
Otra forma de obtener un informe sobre el uso del disco de los subdirectorios de primer nivel es usar --max-depth
opción:
sudo du -h --max-depth=1 /var
77G /var/lib
24K /var/db
4.0K /var/empty
4.0K /var/local
4.0K /var/opt
196K /var/spool
4.0K /var/games
3.3G /var/log
5.0G /var/cache
28K /var/tmp
85G /var
85G total
Por defecto, el du
El comando muestra el espacio en disco utilizado por el directorio o archivo. Para encontrar el tamaño aparente de un directorio, use --apparent-size
opción. El "tamaño aparente" de un archivo es la cantidad de datos que hay realmente en el archivo.
sudo du -sh --apparent-size /var
Cuando transfiere un directorio a través de SCP, Rsync. o SFTP, la cantidad de datos que se transfieren a través de la red es el tamaño aparente de los archivos. Esta es la razón por la cual el tamaño del espacio en el disco utilizado en la fuente cuando se muestra con du
(sin --apparent-size
) no es el mismo que el tamaño del objetivo.
El du
El comando también se puede combinar con otros comandos con tuberías.
Por ejemplo, para imprimir los 5 directorios más grandes dentro de /var
directorio, canalizaría la salida de du
al sort
comando para ordenar los directorios por su tamaño y luego canalizar la salida al head
comando que imprimirá solo los 5 directorios principales:
sudo du -h /var/ | sort -rh | head -5
85G /var/
77G /var/lib
75G /var/lib/libvirt/images
75G /var/lib/libvirt
5.0G /var/cache/pacman/pkg
Conclusión #
En Linux, puede obtener el tamaño de un directorio usando du
comando.
Si tiene alguna pregunta o comentario, deje un comentario a continuación.