Cómo usar ncdu para analizar el espacio en disco en Linux

Cuando Linux avisa de que queda poco espacio, muchas veces lo difícil no es borrar un archivo, sino saber dónde se ha ido el disco. Podemos tener varias descargas antiguas, una máquina virtual que ya no usamos o una carpeta de copias que ha crecido sin darnos cuenta.

ncdu nos permite recorrer las carpetas desde la terminal y ordenarlas por el espacio que ocupan. No decide qué archivos sobran. Nos enseña dónde mirar para que podamos hacer esa comprobación antes de borrar nada.

Logotipo de ncdu

Instalar ncdu y comprobar la versión

En Ubuntu, Linux Mint y Debian lo encontramos en los repositorios:

sudo apt update
sudo apt install ncdu
ncdu --version

Podemos encontrar versiones 1.x o 2.x según la distribución. Para esta guía utilizaremos opciones comunes a ambas ramas. El manual oficial de ncdu permite consultar también las versiones anteriores si una opción no coincide con la instalada.

No necesitamos ejecutar ncdu con sudo para revisar nuestros propios archivos. Darle permisos de administrador desde el principio puede mostrar más carpetas, pero también amplía las consecuencias de un borrado accidental.

Empezar por una carpeta concreta, en modo de lectura

Para revisar nuestra carpeta personal sin permitir el borrado desde el programa:

ncdu -rr "$HOME"

La opción -r desactiva el borrado. Al repetirla también se desactiva la apertura de una shell desde ncdu. Podemos navegar y consultar tamaños sin tener esas dos acciones disponibles.

Si ya sabemos dónde está el problema, acotamos el análisis. Por ejemplo:

ncdu -rr "$HOME/Descargas"

Sustituimos Descargas por el nombre real de la carpeta. En un sistema configurado en otro idioma puede llamarse de otra manera. Si sólo queremos revisar un proyecto, empezamos por ese proyecto en lugar de recorrer todo el ordenador.

Durante el escaneo veremos cómo se van contando los archivos. Una carpeta con millones de elementos puede tardar aunque su tamaño total no sea especialmente grande. Esperamos a que termine antes de comparar sus resultados con los de otras carpetas.

Recorrer los resultados

La lista muestra los elementos ordenados por tamaño. Nos movemos con las flechas, entramos en una carpeta con Intro o la flecha derecha y volvemos al nivel anterior con la izquierda. La ayuda del programa, accesible con ?, muestra las teclas disponibles en nuestra versión.

Listado de carpetas ordenadas por espacio ocupado en ncdu

Si una carpeta ocupa mucho, entramos en ella y repetimos la operación hasta localizar los archivos responsables. No es lo mismo descubrir que Vídeos contiene nuestras grabaciones que encontrar una copia repetida de una máquina virtual.

La tecla a alterna entre espacio ocupado en disco y tamaño aparente. Normalmente no tendremos que cambiarla, pero la diferencia explica algunos resultados que parecen extraños.

Un archivo disperso puede anunciar un tamaño grande sin tener todos sus bloques ocupados. En otros casos, muchos archivos pequeños consumen más espacio del que su contenido hace pensar por la forma en que el sistema de archivos los guarda. Por eso no siempre podemos comparar directamente una cifra de ncdu con la que muestra otra herramienta usando un criterio distinto.

Evitar recorrer otros sistemas de archivos

Si queremos estudiar la partición raíz sin entrar en otros sistemas de archivos montados:

ncdu -rr -x /

-x impide cruzar los límites del sistema de archivos que estamos analizando. No significa «ignorar todo lo que esté en /mnt» ni reconoce por el nombre qué disco es externo.

Si nuestra carpeta personal está en otra partición, ese comando no la incluirá. La analizamos por separado. También podemos excluir carpetas concretas que no necesitamos revisar:

ncdu -rr --exclude '.git' --exclude 'node_modules' "$HOME/Proyectos"

Esas exclusiones cambian el total mostrado. Son útiles para investigar una parte del contenido, pero no para afirmar después que ya hemos medido todo el espacio del proyecto. Adaptamos también el nombre Proyectos a nuestra carpeta real.

Guardar un informe y abrirlo después

Podemos exportar el resultado sin dejar abierta la interfaz:

ncdu -rr -x -o informe-ncdu.json "$HOME/Descargas"

El archivo se escribe en la carpeta actual. Elegimos un nombre nuevo si no queremos sobrescribir un informe anterior. Después lo abrimos con:

ncdu -rr -f informe-ncdu.json

Lo que estamos viendo ahora es una fotografía del escaneo, no una consulta en directo. Si hemos movido o eliminado archivos después de generarlo, los datos del informe no cambian.

Para guardar el informe comprimido, tenemos otra posibilidad:

ncdu -rr -x -o - "$HOME/Descargas" | gzip > informe-ncdu.json.gz

Y para consultarlo:

gzip -cd informe-ncdu.json.gz | ncdu -rr -f -

El informe incluye nombres y rutas. Antes de compartirlo conviene comprobar si revela proyectos, usuarios o documentos que no queremos mostrar. Que esté comprimido no lo convierte en un archivo cifrado.

Si ncdu y df no muestran lo mismo

df informa del espacio del sistema de archivos, mientras que ncdu suma lo que puede recorrer desde una carpeta. Para comprobar la partición que contiene una ruta:

df -h "$HOME"

Si ncdu muestra errores de permisos, parte del contenido no ha podido contarse. También pueden influir archivos eliminados que un proceso mantiene abiertos, instantáneas o datos fuera de la ruta elegida. No hay que empezar a borrar otras carpetas para forzar que ambas cifras coincidan.

La opción -q reduce la frecuencia de actualización de la interfaz y puede ser útil en una conexión remota lenta. No es una garantía de que el escaneo del disco vaya a terminar antes.

Qué hacer con lo que hemos encontrado

Antes de retirar una carpeta grande, comprobamos a qué programa pertenece y si contiene datos que necesitamos conservar. Las cachés de aplicaciones, los paquetes del sistema y los archivos personales no se limpian todos de la misma forma.

Para esta primera revisión mantenemos el modo de lectura y hacemos la limpieza desde el programa correspondiente o el gestor de archivos. Si queremos recuperar espacio de un USB, también conviene revisar cómo funciona su papelera en Linux.

ncdu resulta especialmente cómodo cuando no tenemos interfaz gráfica o queremos seguir el consumo de una carpeta concreta. Una vez localizado el origen, ya podemos decidir qué conservar, qué mover a otro disco y qué eliminar con una copia a mano cuando haga falta.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →