Androide

Cómo obtener el tamaño de un directorio en Linux

Curso GNU/Linux – 15. Comando ls

Curso GNU/Linux – 15. Comando ls

Tabla de contenido:

Anonim

Al enumerar el contenido de un directorio utilizando el comando ls , puede haber notado que el tamaño de los directorios es casi siempre 4096 bytes (4 KB). Ese es el tamaño del espacio en el disco que se utiliza para almacenar la metainformación para el 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".

Obtener el tamaño de un directorio

El comando du 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 ninguna 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, desearía mostrar el espacio ocupado por el directorio en un formato legible para humanos. Por ejemplo, para obtener el tamaño total del directorio /var , debe ejecutar el siguiente comando:

sudo du -sh /var

La salida se verá más o menos así:

85G /var

Vamos a explicar el comando y sus argumentos:

  • El comando comienza con sudo porque la mayoría de los archivos y directorios dentro del directorio /var son propiedad del usuario raíz y los usuarios normales no pueden leerlos. Si omite sudo el comando du imprimirá "du: no se puede leer el directorio". s - Muestra solo el tamaño total del directorio especificado, no muestra los totales de tamaño de archivo para subdirectorios. h - Tamaños de impresión en un formato legible para humanos ( h ). /var : la ruta al directorio en el que desea obtener el tamaño.

¿Qué sucede si desea mostrar el uso del disco de los subdirectorios de primer nivel? Tienes dos opciones. El primero es usar el símbolo de asterisco ( * ) como se muestra a continuación, lo que significa "hacer coincidir todo lo que no comienza con un punto ( . )". La opción -c le dice a du que imprima un gran total 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 la opción --max-depth :

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 comando du muestra el espacio en disco utilizado por el directorio o archivo. Para encontrar el tamaño aparente de un directorio, use la opción --apparent-size . El "tamaño aparente" de un archivo es cuántos datos 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 transfiere 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 en el destino.

El comando du también se puede combinar con otros comandos con tuberías.

Por ejemplo, para imprimir los 5 directorios más grandes dentro del directorio /var , debe canalizar la salida de du al comando sort para ordenar los directorios por su tamaño y luego canalizar la salida al comando head 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 utilizando el comando du .

du terminal de disco