¿Como listar el tamaño de los directorios en linux?

En servidores linux es muy común quedarse sin espacio y volverse loco intentando buscar el fichero o directorio que nos esta ocupando el espacio.

Para ver cual es el directorio que nos esta haciendo la puñeta vamos a utilizar el comando du (disk usage).

Para el ejemplo usaremos el directorio /var/www/html, donde hay ubicados varios proyectos web.

Si utilizamos el comando du -h /var/www/html (añadimos -h para verlo en formato humano) nos encontramos con el problema de que nos muestra el tamaños de los directorios, subdirectorios y todo lo que se encuentra y eso no es lo que queremos.

du -h /var/www/html

20K     ./joomla_prueba/plugins/user/joomla
8.0K    ./joomla_prueba/plugins/user/profile/profiles
12K     ./joomla_prueba/plugins/user/profile/field
52K     ./joomla_prueba/plugins/user/profile
16K     ./joomla_prueba/plugins/user/contactcreator
124K    ./joomla_prueba/plugins/user

Para resolver esto añadimos la opción –max-depth=1 que nos limita la busqueda al primer directorio.

du -h --max-depth=1 /var/www/html

250M    ./pepino
154M    ./web_equipo
140M    ./tacita
195M    ./drbones
100M    ./alienta
164M    ./vibora
530M    ./bosque
220M    ./valiente
59M     ./drupal
289M    ./fundacionlobos


Esto comando ya nos gusta mas, ya que nos muestra el tamaño de lo directorios.

Como ultima opción lo podemos ordenar añadiendo un sort -n (-n ordena por numero), en el caso de ser un listado muy extenso.

du -h --max-depth=1 /var/www/html | sort -n

59M     ./drupal
100M    ./alienta
140M    ./tacita
154M    ./web_equipo
164M    ./vibora
195M    ./drbones
220M    ./valiente
250M    ./pepino
289M    ./fundacionlobos
530M    ./bosque

Listar directorios en linux y ordenar por tamaño

En determinadas ocasiones y mas en equipos compartidos se disparan los tamaños de los directorios y queremos saber cual son los que mas ocupan.

En en linux se realiza de una manera muy sencilla con du (disk usage).

Con el comando du -s nombre_directorio sabremos el tamaño que tiene, y añadiendo -h nos dice el tamaño en formato legible para humanos, es decir en kb, mb, etc.

du -sh tmp
532M   tmp

Ahora que ya sabemos el espacio de un directorio queremos saber, el espacio de su contenido y lo haremos añadiendlo el parametro –max-depth=1

cd /tmp
du -h --max-depth=1
900K    ./Example
4.0K    ./Foredettinghelgen
44K     ./IssueTrackerBlogInterface
1.9M    ./IssueTrackerProduct
12K     ./fried
2.1M    ./ies4linux-2.0.5
4.8M    ./pyexcelerator
52K     ./levenstein
4.0K    ./newitpdesign
4.7M    ./photoresizing
69M     ./databases
4.5M    ./i18nextract-sa
532M    .

Y ya por ultimo si lo queremos tener ordenado por tamaño añadimos el comando sort

cd /tmp
du --max-depth=1 | sort -n
4       ./Foredettinghelgen
4       ./newitpdesign
12      ./fried
44      ./IssueTrackerBlogInterface
52      ./levenstein
900     ./Example
1856    ./IssueTrackerProduct
2140    ./ies4linux-2.0.5
4528    ./i18nextract-sa
4796    ./photoresizing
4872    ./pyexcelerator
70392   ./databases
544608  .

Con estos sencillos comandos puedes obtener el tamaño de tus directoiros y ordenarlos segun tus necesidades.