GNU/Linux >> Tutoriales Linux >  >> Linux

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

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 omite sudo el du 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.


Linux
  1. Cómo obtener el tamaño del directorio en Linux

  2. Cómo cambiar el tamaño de MTU en Linux

  3. ¿Cómo puedo obtener el estado del teclado en Linux?

  4. ¿Cómo obtengo programáticamente el espacio libre en disco para un directorio en Linux?

  5. Cómo obtener el tamaño de tar.gz en un archivo (MB) en python

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

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

Cómo obtener la cantidad de procesadores/núcleos en Linux

Cómo copiar un directorio en Linux

Cómo migrar el directorio HOME en Linux

Cómo verificar el tamaño de los archivos y directorios en Linux