Este artículo explica cómo utilizar el comando du (disk usage) para determinar cuanto espacio en disco ocupa un directorio (o un listado de directorios) de forma rápida y sencilla.



Como todos sabemos, cuando utilizamos el comando ls con las opciones -lh se muestran los tamaños de archivo en disco, por ejemplo:

[root@hal9000 ~]# ls -lh /etc/sysconfig/ | grep net
-rw-r--r--  1 root root  634 Aug  5 10:21 netconsole
-rw-r--r--. 1 root root   53 Jun 21  2012 network
drwxr-xr-x. 4 root root 4.0K Aug  5 10:21 networking
drwxr-xr-x. 2 root root 4.0K Aug  6 09:12 network-scripts
-rw-------  1 root root  376 Feb 22 00:03 xinetd

Aunque no muestra el tamaño en disco que ocupa un directorio, o mejor dicho, el tamaño en disco que ocupan recursivamente todos los archivos dentro del directorio.

Para lograr esto es posible utilizar el comando du, el cual muestra cuánto espacio en disco ocupa cada archivo, y todos los archivos de un directorio, recursivamente. El problema es que la salida por defecto de du es muy verbosa, ya que lista recursivamente cada directorio. Para directorios que contienen gran cantidad de archivos resulta difícil o incómodo encontrar cual es el espacio total de cada directorio. Es por ello que este comando cuenta con la opción -s la cual muestra el total para cada entrada.

Por ejemplo, si queremos determinar cuanto espacio en disco ocupa cada directorio dentro de /usr, podemos utilizar el comando du -hs --total /usr/*:

[root@hal9000 ~]# du -hs --total /usr/*
339M    ./bin
4.0K    ./etc
4.0K    ./games
67M     ./include
123M    ./java
402M    ./lib
1.6G    ./lib64
96M     ./libexec
8.4M    ./local
16K     ./lost+found
50M     ./sbin
2.8G    ./share
237M    ./src
0       ./tmp
5.7G    total

Ya que es un comando muy útil es conveniente crear un alias en nuestro archivo .bashrc para poder utilizar rápidamente:

$ echo 'alias dus="du -hs --total"' >> ~/.bashrc

La próxima vez que iniciamos sesión es posible utilizar el alias "dus":

[root@hal9000 ~]# dus /usr/*
339M    /usr/bin
4.0K    /usr/etc
4.0K    /usr/games
67M     /usr/include
123M    /usr/java
402M    /usr/lib
1.6G    /usr/lib64
96M     /usr/libexec
8.4M    /usr/local
16K     /usr/lost+found
50M     /usr/sbin
2.8G    /usr/share
237M    /usr/src
0       /usr/tmp
5.7G    total


Tal vez pueda interesarte


Compartí este artículo