Du es una herramienta de Linux, que permite calcular el espacio en disco de archivos y de forma recursiva para directorios.
Du
(disk usage) forma parte de las GNU Core Utilities
, que son las utilidades básicas que permiten la manipulación de archivos y de Shell del Sistema Operativo Linux (GNU). Para obtener más información y saber cuales son las herramientas más importantes que componen las GNU Core Utilities puedes hacer clic aquí.
Empecemos obteniendo un informe del espacio en disco ocupado por un directorio y cada uno de sus directorios.
1 |
$ du /var/log |
Y si queremos obtener un informe detallado del espacio en disco de directorios, subdirectorios y también ficheros utilizaremos el comodín *
1 |
$ du /var/log/* |
El caso es que su lectura es un poco confusa y vamos a empezar a utilizar parámetros para que sea más legible. Para ello vamos a usar la opción -h (Human Readable Format), que imprime el tamaño en Kilobytes (K), Megabytes (M) y Gigabytes (G).
1 |
$ du -h /var/log/* | more |
El listado lo podemos ordenar usando el comando sort
con la opción -r para que lo ordene de mayor a menor.
1 |
$ du -h /var/log/* | sort -hr | more |
Ahora vamos a utilizar la opción -s que a diferencia de usar tan sólo la opción -h, que comprueba el espacio de cada uno de los directorios de forma recursiva, por lo que nos permitirá obtener un total del espacio ocupado de los directorios que lo contienen.
1 |
$ du -hs /var/log/* | sort -hr | more |
Si lo que necesitamos es incluir una suma del total de todos los directorios y subdirectorios podemos utilizar la opción -c
1 |
$ du -hsc /var/log/* | sort -hr | more |
Y si necesitamos filtrar el número de resultados a mostrar podemos usar el comando head
.
1 |
$ du -hsc /var/log/* | sort -hr | head -5 |
Excluyendo resultados del listado
Para poder excluir ciertos directorios podemos usar la opción –exclude, que nos va a permitir hacer uso de patrones de búsqueda. Por lo que en este caso le vamos a indicar que excluya de la lista de resultados aquellos ficheros con extensión .gz.
1 |
$ du -ah --exclude="*.gz" /var/log/* | sort -hr | head -10 |
Consultando fechas de última modificación
Otra opción interesante es –time que permite mostrar la fecha de última modificación.
1 |
$ du -ah --exclude="*.gz" --time /var/log/* | sort -hr | head -10 |
Enlaces de interés
Para saber más sobre el uso de los diferentes comandos y sus opciones disponibles, podéis seguir los siguientes enlaces.