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

Cómo obtener el tamaño de un directorio en Linux
Conocer el tamaño de un directorio en Linux no es tan sencillo como suena. El comando "LS -S" enumerará los archivos y subdirectorios con sus tamaños. Sin embargo, los tamaños (aproximadamente 4096 bytes) dados para los directorios no son el uso de disco. El tamaño visto para un directorio es el tamaño de los metadatos del directorio.

Los metadatos son datos sobre datos. El tamaño aparente es el tamaño de los datos que son importantes para el usuario ordinario de la computadora. El contenido (texto) de las letras, imágenes, videos del usuario, etc., constituir el tamaño aparente. Estos datos no se mantienen arbitrariamente en la computadora. Los datos de tamaño aparente deben mantenerse de manera control. Debe ser identificable. Debe estar completo. Hay otros requisitos para ello. Se necesitan algunos datos adicionales para lograr estos requisitos adicionales, y estos datos adicionales son los metadatos.

Recuerde, solo hay un directorio en un volumen. El resto son subdirectorios. El directorio raíz da lugar a subdirectorios, que dan lugar a otros subdirectorios que están bajando. Sin embargo, los subdirectorios generalmente se llaman simplemente directorios. Y así, solo hay un árbol de directorio.

Entonces, "LS -S" no es útil para obtener el tamaño de un directorio. ¿Qué comando es útil?? - El comando du. "Du" significa uso de disco. Imprime el uso del disco del directorio.

Este artículo explica las diferentes características del comando DU en Linux, que proporciona las diferentes formas de programador de conocer los tamaños de los directorios y sus subdirectorios. Bash es el shell utilizado para las muestras de código de este artículo.

Contenido del artículo

  • du sin opción ni argumento
  • Tamaño de otros directorios
  • de tamaño aparente
  • El comando sudo
  • Excluyendo entradas por tamaño
  • excluir = patrón
  • Conclusión

du sin opción ni argumento

El directorio de trabajo actual es el directorio en el que el usuario está trabajando actualmente. El mensaje normalmente muestra el directorio de trabajo actual. Escribir DU sin ninguna opción y argumento, como así:

du

y luego presionando la tecla ENTER mostrará el uso del disco para todos los subdirectorios del directorio de trabajo actual. Mostrará esta información para el sub-árbol del directorio de trabajo actual. Un punto en la pantalla representa el directorio de trabajo actual.

Cada ruta del sub-árbol se representa en una línea, en la pantalla. Cada línea comienza con el tamaño del directorio (que es apellido en la ruta). La pantalla puede ser algo así como:

8 ./DIR1/DIR2/DIR3/DIR4
12 ./DIR1/DIR2/DIR3
dieciséis ./Dir1/Dir2
20 ./Dir1

Tenga en cuenta que no está claro si el tamaño está en bytes o kilobytes o megabytes o gigabytes. Kilobytes del símbolo, K significa 1024 bytes; Megabytes del símbolo, M significa 1,048,576 bytes; Gigabytes del símbolo, G significa 1,073,741,824 bytes. Para que se indiquen los múltiplos, se debe usar la opción -h (conmutador), de la siguiente manera:

du -h

La pantalla se vería así:

8.0k ./DIR1/DIR2/DIR3/DIR4
12k ./DIR1/DIR2/DIR3
16k ./Dir1/Dir2
20k ./Dir1

Cuando se usa la opción -h, se dice que los tamaños están en forma legible.

Nota: Con la opción -tal, el comando du también dará uso de disco para los archivos; Sin embargo, el uso del disco para los archivos no se abordará en este artículo.

Tamaño de otros directorios

Una ruta absoluta típica para un volumen de Linux es el siguiente:

/Home/John/Dirone/Dirtwo/Dirthree/Dirfour

El primero / es el directorio raíz. Este directorio tiene subdirectorios inmediatos, incluido el directorio de inicio. El directorio de inicio tiene el directorio del usuario. Si el nombre del usuario es John, entonces puede nombrar el directorio del usuario, John. El directorio del usuario se identifica por ~. Entonces, el usuario puede usar el comando "CD ~" para llegar a su directorio desde cualquier directorio. Dirone es un directorio creado por el usuario. El usuario también puede crear otros directorios en este nivel. DIRTWO, DIRTHREE y DIRFOUR son subdirectorios para sus directorios anteriores, creados por el usuario.

El usuario puede conocer el tamaño de cualquier otro directorio y sus subdirectorios (sub-árbol) desde cualquier directorio, evitando la ruta absoluta como argumento. Por ejemplo, si se necesita el uso del disco,

/Home/John/Dirone/Dirtwo

Entonces el comando sería:

du -h/Home/John/Dirone/Dirtwo

o

du -h ~/dirone/dirtwo

donde ~ representa el directorio del usuario.

Para usar una ruta relativa, el usuario ya debe estar en el directorio principal correspondiente. Por ejemplo, si el aviso se muestra,

John@Host: ~/Dirone $

lo que significa que el usuario está en el directorio,/home/John/dirone, entonces el siguiente comando dará el mismo resultado que el comando anterior:

du -h dirtwo

Los caminos aún serían relativos. Para mostrar la misma información para el directorio actual, no use argumento o use el punto.

Este esquema se puede usar para obtener el tamaño de un solo directorio, el último en una ruta (precedido por la ruta). Es posible obtener el tamaño de un directorio en el medio de una ruta: consulte "Excluir = Patrón" a continuación.

Gran total

Se puede producir un gran tamaño total de todos los directorios involucrados. Para la situación anterior, el comando sería:

du -h -total

de tamaño aparente

El tamaño aparente suele ser más pequeño que el uso del disco. Sin embargo, en algunas situaciones, el tamaño aparente es más grande que el uso del disco; Razón - Ver más tarde. El comando para obtener los tamaños aparentes para la ruta relativa anterior sería:

du -h -Dirtwo

Máximo

Con -max -depth = 0, du imprime el tamaño de solo el directorio de trabajo actual; Con du -max-depth = 1, DU imprime el tamaño del directorio de trabajo actual y los tamaños de todos sus subdirectorios de primer nivel; Con -Max-Depth = 2, DU imprime el tamaño del directorio de trabajo actual y los tamaños de todos sus subdirectorios de primer nivel, y de todos sus subdirectorios de segundo nivel; Con -Max-Depth = 3, DU imprime el tamaño del directorio de trabajo actual y todos sus subdirectorios de primer nivel, y todos sus subdirectorios de segundo nivel, y de todos sus subdirectorios de tercer nivel; Esto continúa con el valor creciente de Max-Depth. Un ejemplo de su uso es:

du -h - -max -depth = 2

El comando sudo

Uno de los directorios con sus propios subdirectorios en el directorio raíz es var. Si el usuario tipos

du -h /var

y las presiones entran, se dará cuenta de que se niega el permiso para algunos directorios. Es decir, no puede conocer los tamaños de algunos directorios. El permiso se niega porque el usuario no es el superusor. El Superuser tiene el privilegio de ver los tamaños (uso de disco) de esos directorios. Entonces, para que el usuario adquiera ese privilegio, tiene que usar el comando sudo de la siguiente manera:

sudo du -h /var

Si el shell le pide al usuario su contraseña, el usuario debe escribir la contraseña y presionar ENTER. Con el comando sudo, el usuario ordinario (programador) puede ver los tamaños de todos los directorios en el directorio var y directorios similares.

Excluyendo entradas por tamaño

La opción "-threshold = size" no permitirá directorios de listado cuyos tamaños son menos que tamaño. Para el camino,

/Home/John/Dirone/Dirtwo/Dirthree/Dirfour

con el aviso en "John@host: ~ $", entonces

du -h -umbral = 12k dirone

donde 12k significa 12 kilobytes, no mostrará la línea para ningún directorio cuyo uso de disco sea inferior a 12k.

-excluir = patrón

Esta opción y valor puede omitir las líneas de directorio que el usuario no desea en la lista.

Para omitir la línea para el último directorio, dirfour de la ruta

/Home/John/Dirone/Dirtwo/Dirthree/Dirfour

El comando debe ser:

du -h --exclude = Dirone/Dirtwo/Dirthree/Dirfour Dirone

El resultado será algo como,

4.0K Dirone/Dirtwo/Dirthree
8.0K Dirone/Dirtwo
12k dirone

Nota: Los tamaños no han incluido el tamaño del directorio de último nivel (Dirfour) de la ruta.

Para tener solo los tamaños de los directorios de profundidad superior y sus subarres, no tienen los directorios de menor profundidad en la opción. Entonces con el comando,

du -h --exclude = Dirone/Dirtwo/Dirthree Dirone
La salida será algo así como,
4.0K Dirone/Dirtwo
8K Dirone

Nota: Los tamaños han excluido los tamaños de los directorios de la palanca inferior del árbol.

Considere nuevamente el enlace absoluto,

/Home/John/Dirone/Dirtwo/Dirthree/Dirfour

El siguiente comando obtendrá el uso del disco de solo el directorio DIRTWO, que es un directorio dentro de la ruta. El comando es:

du -h --exclude =/home/John/Dirone/Dirtwo/*/Home/John/Dirone/Dirtwo

El argumento tiene todos los directorios anteriores en cuestión. El valor de excluir tiene todos los directorios anteriores, terminando con *, justo después de el que está en cuestión. * significa todos los subdirectorios en ese nivel (y sus subtrees). El resultado será algo como,

5.0K/HOME/JOHN/DIRONE/DIRTWO

Conclusión

Intentar saber el tamaño de un directorio con el comando "ls -s" es engañoso. Con él, solo se obtienen los metadatos del directorio. Para conocer el uso del disco de un directorio, el comando DU debe usarse. Cuando se usa con la opción -h, los tamaños de los directorios son legibles. El tamaño aparente se puede obtener utilizando la opción de tamaño aparente. Sin ninguna opción y argumento, el comando DU solo muestra los tamaños de todos los subdirectorios del directorio actual, incluido el del directorio actual. El argumento a "du" es el camino, que puede comenzar desde la raíz. Las opciones y algunos de sus valores deciden exactamente qué directorios se abordan. El comando sudo proporciona a los privilegios de superusor del usuario ordinario de forma predeterminada.