El comando «dpkg-query -W -f=’${Package}\t${Installed-Size}\n’ | sort -k 2 -nr | grep -v deinstall | head -n 25 | awk ‘{printf «%.3f \t %s\n», $2/(1024), $1}'»



El comando dpkg-query -W -f='${Package}\t${Installed-Size}\n' | sort -k 2 -nr | grep -v deinstall | head -n 25 | awk '{printf "%.3f \t %s\n", $2/(1024), $1}' es una secuencia de comandos que se utiliza para obtener una lista de los 25 paquetes instalados más grandes en un sistema Debian o Ubuntu, mostrando el tamaño de cada paquete en kilobytes (KB) y ordenando la lista en orden descendente según el tamaño. Aquí tienes una explicación paso a paso y un ejemplo de resultado:

  • dpkg-query -W -f='${Package}\t${Installed-Size}\n': Esta parte del comando utiliza dpkg-query para obtener información sobre todos los paquetes instalados en el sistema. La opción -W (query) se utiliza para realizar una consulta y la opción -f (format) permite especificar un formato de salida personalizado. En este caso, estamos solicitando que se muestre el nombre del paquete (${Package}) y el tamaño instalado (${Installed-Size}) en un formato específico.
  • sort -k 2 -nr: Utilizamos el comando sort para ordenar la salida en función del segundo campo (el tamaño del paquete) de manera numérica (-n) y en orden descendente (-r).
  • grep -v deinstall: Utilizamos grep para filtrar los resultados y eliminar cualquier línea que contenga la palabra «deinstall». Esto se hace para asegurarse de que solo se incluyan los paquetes instalados, no los desinstalados.
  • head -n 25: Utilizamos head para mostrar solo las primeras 25 líneas de la lista, es decir, los 25 paquetes más grandes.
  • awk '{printf "%.3f \t %s\n", $2/(1024), $1}': Utilizamos awk para formatear la salida final. Dividimos el segundo campo (tamaño en KB) por 1024 para convertirlo a megabytes (MB) y luego mostramos el resultado junto con el nombre del paquete. El formato final es «X.XXX MB Nombre_del_Paquete».

Ejemplo de resultado:

Supongamos que después de ejecutar el comando dpkg-query -W -f='${Package}\t${Installed-Size}\n' | sort -k 2 -nr | grep -v deinstall | head -n 25 | awk '{printf "%.3f \t %s\n", $2/(1024), $1}', obtienes un resultado similar al siguiente:

418.887    linux-image-5.11.0-27-generic
418.887    linux-image-5.11.0-46-generic
336.676    linux-image-5.11.0-38-generic
336.676    linux-image-5.11.0-41-generic
336.676    linux-image-5.11.0-36-generic
336.676    linux-image-5.11.0-40-generic
336.676    linux-image-5.11.0-37-generic
336.676    linux-image-5.11.0-35-generic
336.676    linux-image-5.11.0-28-generic
336.676    linux-image-5.11.0-34-generic
336.676    linux-image-5.11.0-29-generic
336.676    linux-image-5.11.0-26-generic
336.676    linux-image-5.11.0-33-generic
336.676    linux-image-5.11.0-25-generic
336.676    linux-image-5.11.0-32-generic
336.676    linux-image-5.11.0-31-generic
336.676    linux-image-5.11.0-30-generic
245.918    linux-headers-5.11.0-46-generic
245.918    linux-headers-5.11.0-27-generic
245.918    linux-headers-5.11.0-41-generic
245.918    linux-headers-5.11.0-38-generic
245.918    linux-headers-5.11.0-36-generic
245.918    linux-headers-5.11.0-40-generic
245.918    linux-headers-5.11.0-37-generic

La explicación de este resultado es la siguiente:

  • La lista muestra los nombres de los paquetes instalados junto con su tamaño en megabytes (MB) en orden descendente según el tamaño. Los nombres de los paquetes son aquellos que ocupan más espacio en disco en tu sistema.

Este comando es útil para identificar rápidamente los paquetes que ocupan más espacio en disco en tu sistema, lo que puede ser útil para la gestión del espacio en disco y la identificación de paquetes que puedan ser candidatos para su desinstalación o limpieza.