En muchas ocasiones listamos directorios en un servidor para conocer el uso de espacio en disco de cada una de las cuentas de hosting, es una de las tareas que nos toca a menudo a los administradores de sistemas. Veremos un ejemplo para listar sus directorios y ordenarlos por tamaño en su servidor Linux.

Listaremos las carpetas del directorio /home donde se encuentran las cuentas de usuarios:


du --max-depth=1 /home/ | sort -n -r

Salida:


[root@hn ~]# du /home --max-depth=1 | sort -nr
47713200 /home
47643736 /home/mario
63296 /home/alonso
6124 /home/fabian
20 /home/carlos
12 /home/javier
4 /home/alberto
[root@hn ~]#

El comando podría tardar bastante tiempo si lo ejecutamos en la carpeta /home, por lo que podriamos querer tambien escribirlo en un archivo aparte y dejarlo corriendo mientras hacemos otras cosas, agregamos al comando:


[root@hn /]# du /home --max-depth=1 | sort -nr >> quotas.txt
47713200 .
47643736 ./solusvm
63296 ./char
6124 ./kepler
20 ./carlos
12 ./j
4 ./kvm

Luego podremos leer el archivo quotas.txt que contendrá la información de salida. Para facilitar la lectura del comando y hacer la salida legible para humanos podemos agregar la opción “–si” al comando du para poder leer la información en K,M,GB:


[root@hn ~]# du --si /home --max-depth=1 | sort -nr
65M /home/mario
49G /home/alonso
49G /home
21k /home/fabian
13k /home/javier
6,3M /home/carlos
4,1k /home/alberto
[root@hn ~]#

Asi podremos leer la información de los directorios ordenados por tamaño y tendremos mayor control de uso de espacio en disco.

También podemos siempre guardar las salidas agregando “>> nombredearchivo”:

du --si /home --max-depth=1 | sort -nr >> quotas.txt 

Hay muchas formas más de ordenar carpetas por tamaño en Linux, si conoces alguna y quieres compartirla en un comentario será bienvenida para la comunidad.