El comando «du -k –max-depth=1 | sort -k1 -nr | awk ‘{printf «%.3f GiB\t %s\n», $1/(1048576), $2}’ | less»



El comando du -k --max-depth=1 | sort -k1 -nr | awk '{printf "%.3f GiB\t %s\n", $1/(1048576), $2}' | less es una secuencia de comandos que realiza varias operaciones para calcular el espacio utilizado por los directorios de nivel superior en el directorio actual y muestra estos resultados en un formato más legible para humanos. Aquí tienes una explicación paso a paso y un ejemplo de resultado:

  • du -k --max-depth=1: Esta parte del comando utiliza du para calcular el espacio utilizado por cada directorio de nivel superior (directamente dentro del directorio actual) en kilobytes. La opción --max-depth=1 limita la profundidad de búsqueda a un solo nivel, por lo que se calculará el espacio ocupado por los directorios de nivel superior.
  • |: Este es el operador de tubería (pipe) que redirige la salida del comando anterior al siguiente comando.
  • sort -k1 -nr: Esta parte del comando utiliza sort para ordenar los resultados. La opción -k1 especifica que se ordene según la primera columna (los tamaños en kilobytes), y la opción -nr indica una ordenación numérica en orden descendente, es decir, desde el elemento más grande hasta el más pequeño.
  • awk '{printf "%.3f GiB\t %s\n", $1/(1048576), $2}': Utiliza el comando awk para formatear los resultados de du en un formato más legible para humanos. Divide la primera columna (tamaños en kilobytes) por 1,048,576 para convertirla a gibibytes (GiB) y luego muestra el resultado junto con el nombre del directorio. El formato final se ve como «X.XXX GiB Directorio».
  • less: Utiliza el comando less para paginar la salida. Esto es útil cuando los resultados son largos y quieres poder desplazarte por ellos de manera controlada.

Ejemplo de resultado:

Supongamos que tienes el siguiente contenido en el directorio actual:

dir1/ (3145728 KB)
dir2/ (5242880 KB)
archivo1.txt (2097152 KB)
archivo2.txt (1048576 KB)

Si ejecutas el comando du -k --max-depth=1 | sort -k1 -nr | awk '{printf "%.3f GiB\t %s\n", $1/(1048576), $2}' | less, obtendrás un resultado similar a este:

5.000 GiB     dir2
3.000 GiB     dir1
2.000 GiB     archivo1.txt
1.000 GiB     archivo2.txt

La explicación de este resultado es la siguiente:

  • 5.000 GiB dir2: El directorio dir2 ocupa 5.000 gibibytes (GiB) en disco y es el directorio de nivel superior que ocupa más espacio.
  • 3.000 GiB dir1: El directorio dir1 ocupa 3.000 gibibytes (GiB) en disco y es el segundo directorio de nivel superior que ocupa más espacio.
  • 2.000 GiB archivo1.txt: El archivo archivo1.txt ocupa 2.000 gibibytes (GiB) en disco.
  • 1.000 GiB archivo2.txt: El archivo archivo2.txt ocupa 1.000 gibibytes (GiB) en disco.

Este comando es útil para obtener una visión más clara del espacio ocupado en disco por los directorios de nivel superior en el directorio actual y proporciona información en gibibytes (GiB) para que sea más legible para los usuarios. El uso de less permite examinar los resultados de manera controlada si la lista es larga.