- Controlar el uso de disco con df y du permite localizar rápidamente las particiones y directorios que más espacio consumen en Linux.
- Comandos como apt-get autoremove, clean y la limpieza de cachés y miniaturas liberan gigas en sistemas Ubuntu, Linux Mint y servidores.
- Gestionar kernels antiguos, logs, backups y versiones Snap evita que el sistema vuelva a llenarse y mejora la estabilidad del servidor.
- Sobrescribir el espacio libre con dd o herramientas similares aumenta la seguridad al dificultar la recuperación de archivos eliminados.
Con el paso del tiempo, cualquier instalación de Linux acaba acumulando basura: paquetes que ya no se usan, núcleos antiguos, miniaturas caducadas, logs infinitos, copias de seguridad viejas… y, sin darte cuenta, llega el aviso de «poco espacio en disco» justo cuando más lo necesitas. Da igual si usas Ubuntu, Linux Mint, un servidor con Plesk o un disco externo: si no lo cuidas, se llena.
La buena noticia es que liberar espacio de disco en Linux es mucho más sencillo de lo que parece si sabes dónde mirar y qué puedes borrar con seguridad. En esta guía vamos a reunir, ordenar y ampliar todas las técnicas que aparecen repartidas en las webs que mejor posicionan para este tema, y las integraremos en un único artículo práctico, en español de España, pensado tanto para equipos de escritorio como para servidores.
1. Cómo comprobar el espacio libre en Linux
Antes de borrar nada conviene saber exactamente cuánto espacio tienes ocupado y por qué. En Linux puedes hacerlo tanto con comandos como con herramientas gráficas, según te apetezca usar la terminal o el entorno de escritorio.
1.1. Usar la herramienta gráfica de análisis de disco (Ubuntu y derivados)
En escritorios como Ubuntu, Linux Mint o elementary OS dispones de un analizador gráfico de uso de disco (por ejemplo, “Analizador de uso de disco” o “Disk Usage Analyzer”). Lo buscas en el menú de aplicaciones, lo abres y verás un gráfico con el espacio usado y el libre, además de un desglose por carpetas.
Este tipo de herramientas te permite detectar de un vistazo las rutas que más ocupan (por ejemplo, /var, la carpeta personal, etc.), algo muy útil si no quieres pelearte con la terminal de entrada.
1.2. Comprobar uso de disco con df -h
El comando básico para ver cuánto espacio hay en cada sistema de archivos es df -h. Ejecuta en la terminal:
df -h
Con la opción -h verás los tamaños “humanos” (K, M, G) y podrás localizar al momento qué partición está al 90-100 %. Si tu partición raíz “/” o el punto de montaje de un disco externo aparece casi llena, es hora de hacer limpieza.
1.3. Encontrar qué directorios ocupan más con du
Una vez localizada la partición problemática, el siguiente paso es averiguar qué carpetas son responsables del desaguisado. Para eso se usa el comando du, que muestra cuánto espacio ocupa cada ruta.
Por ejemplo, para ver el peso de los directorios del sistema raíz:
cd /
sudo du -sh *
La opción -s resume por directorio y -h muestra tamaños legibles. Así verás líneas tipo 4.0G /var, 15G /home, etc., lo que te indica dónde seguir investigando. Es muy frecuente que el «agujero negro» esté en /var (logs, bases de datos, backups) o en tu carpeta de usuario.
Si quieres analizar una ruta concreta, por ejemplo /var, puedes usar:
sudo du -sh /var/*
Con esto vas bajando niveles hasta encontrar el directorio concreto que se está comiendo el espacio (por ejemplo, /var/log, /var/lib/mysql, /var/lib/psa/dumps en servidores Plesk, etc.).
2. Limpiar paquetes huérfanos y dependencias que ya no sirven
En sistemas basados en Debian/Ubuntu (Ubuntu, Linux Mint, muchas distros de escritorio y servidores) el gestor de paquetes APT va acumulando dependencias que ya no se necesitan. Son los llamados paquetes huérfanos: se instalaron porque otro paquete los pedía, pero ese paquete ya no está.
Para borrar todo eso de golpe basta con usar apt-get autoremove:
sudo apt-get autoremove
El sistema te mostrará la lista de paquetes a eliminar y el espacio que se va a liberar antes de pedir confirmación. En algunos casos reales, sólo este comando ha llegado a liberar varios gigas (por ejemplo, 9 GB entre kernels antiguos y librerías obsoletas).
Entre los paquetes que suelen aparecer verás muchos linux-image-*, linux-headers-* y sus módulos correspondientes, que son núcleos antiguos que ya no utilizas porque estás arrancando con versiones más recientes.
2.1. Eliminar software que ya no usas
Además de dependencias huérfanas, todos acabamos instalando programas que probamos una vez y nunca más usamos: juegos, editores, utilidades, etc. Cada uno ocupa su espacio, y sumados pueden llenar tu SSD sin que te des cuenta.
Puedes desinstalar aplicaciones desde el Centro de Software o con la terminal. Por ejemplo:
sudo apt-get remove nombre-paquete1 nombre-paquete2
Si quieres limpiar también sus archivos de configuración, puedes usar purge en lugar de remove, de forma que liberas algo más de espacio y dejas menos rastro en el sistema.
2.2. Limpiar archivos de configuración de paquetes eliminados
APT tiene la costumbre de mantener archivos de configuración de paquetes que ya has desinstalado. No suelen ocupar tanto como un kernel, pero si llevas años con la misma instalación pueden sumar.
Hay una receta habitual que combina dpkg y egrep para borrar de golpe esos restos marcados con el estado “rc”:
sudo dpkg --purge `COLUMNS=300 dpkg -l | egrep "^rc" | cut -d' ' -f3`
Este comando elimina las configuraciones asociadas a paquetes ya desinstalados, logrando un sistema algo más limpio y, en algunos casos, unos cuantos megas adicionales libres.
3. Limpiar cachés de APT y otros componentes
Otra fuente de residuos son las cachés de descarga y de miniaturas que el sistema guarda para ir más rápido. El problema es que rara vez se vacían solas.
3.1. Caché de APT: autoclean y clean
APT almacena en /var/cache/apt/archives todos los paquetes .deb que descarga, tanto los actuales como versiones antiguas que ya no necesitas. Para ver cuánto ocupan:
sudo du -sh /var/cache/apt
En distintos casos se han visto cachés de 150 MB, 350 MB o más, que cuando vas justo de espacio pueden marcar la diferencia.
Tienes dos opciones de limpieza:
- Eliminar sólo los paquetes obsoletos (los que ya no se pueden descargar porque hay versiones más nuevas):
sudo apt-get autoclean - Borrar toda la caché de APT (se liberará más espacio, a costa de tener que descargar de nuevo todo en futuras instalaciones):
sudo apt-get clean
Muchos usuarios combinan de forma habitual sudo apt-get autoremove y sudo apt-get clean para mantener el sistema bastante despejado sin esfuerzo.
3.2. Caché de miniaturas de imágenes
Los exploradores de archivos de escritorios como Ubuntu o Linux Mint generan miniaturas de tus fotos, vídeos y documentos para mostrar iconos bonitos al navegar por las carpetas. Esas miniaturas se guardan en ~/.cache/thumbnails.
Con el tiempo, esa carpeta puede crecer hasta cientos de megas (153 MB, 300 MB, etc.), incluyendo miniaturas de ficheros que ya no existen. Para ver cuánto ocupa:
du -sh ~/.cache/thumbnails
Y para borrar toda la caché de miniaturas:
rm -rf ~/.cache/thumbnails/*
El sistema volverá a generar miniaturas cuando las necesite, así que no pasa nada por vaciarla cada cierto tiempo. Es una limpieza sencilla y relativamente segura.
4. Gestionar kernels antiguos y núcleos del sistema
En muchas instalaciones de Ubuntu y derivados, especialmente si se actualiza a menudo, es muy habitual acumular decenas de kernels antiguos con sus headers y módulos correspondientes. Cada conjunto puede rondar los 300 MB, de modo que 20-30 versiones obsoletas suponen varios gigas perdidos.
Como hemos comentado, el comando sudo apt-get autoremove suele encargarse de borrar linux-image-*, linux-headers-* y linux-modules-* que ya no están en uso. En un ejemplo real, limpiar esta colección de kernels llegó a liberar cerca de 9 GB de espacio.
La regla de oro es conservar como mínimo el kernel actual y, si quieres, uno anterior por seguridad. El resto se pueden eliminar con tranquilidad, siempre dejando que APT lo gestione en lugar de borrar archivos a mano en /boot.
5. Limpiar registros del sistema (logs y journal de systemd)
Linux registra absolutamente todo: mensajes del sistema, servicios, errores, actividad del kernel… Esto es fantástico para diagnosticar problemas, pero los logs pueden crecer sin control si no se rotan o comprimen adecuadamente.
5.1. Tamaño del journal de systemd
En sistemas con systemd, los registros binarios del journal se almacenan habitualmente en /var/log/journal. Para comprobar cuánto ocupan:
journalctl --disk-usage
Hay casos en los que el journal ocupa 1,8 GB o más, lo que en discos pequeños es un buen mordisco.
Puedes dejar sólo los de los últimos días con este comando:
sudo journalctl --vacuum-time=3d
En un ejemplo típico, esta operación liberó 1,7 GB de registros archivados, reduciendo drásticamente el consumo en /var/log/journal sin quedarte sin información reciente para depurar.
5.2. Logs tradicionales en /var/log
Además del journal, en muchos sistemas siguen existiendo ficheros de log de texto en /var/log (por ejemplo, logs de Apache, Nginx, mail, bases de datos, etc.). En servidores con Plesk esto es todavía más evidente.
En este tipo de entornos es muy común que rutas como /var/log/ acumulen ficheros gigantes, sobre todo si el rotado de logs no está bien configurado. Antes de borrar nada conviene revisar qué fichero es, su tamaño y si realmente puedes eliminarlo sin más.
Por ejemplo, si detectas que /var/log/apache2/error.log o /var/log/httpd/error_log se han disparado, puedes:
- Vaciar o borrar el log actual (por ejemplo, con
sudo rm /var/log/apache2/error.log) sabiendo que el servicio lo volverá a crear, o bien truncarlo para dejarlo a cero. - Ajustar la política de rotación en logrotate para que en adelante no vuelvan a crecer sin límite.
En servidores con alto uso, una revisión periódica de /var/log ayuda a evitar sorpresas de llenado de disco que tumben servicios web o de correo.
6. Limpiar versiones antiguas de paquetes Snap
En distribuciones que usan paquetes Snap (como Ubuntu), cada aplicación se empaqueta con sus dependencias, lo que hace que los paquetes pesen más que los .deb tradicionales. Además, Snap mantiene varias revisiones antiguas de cada aplicación para que puedas hacer rollback, y eso se nota en el disco.
Para ver cuánto ocupan los snaps en tu sistema:
sudo du -h /var/lib/snapd/snaps
Algunos usuarios han visto cifras de más de 5 GB sólo en snaps, de los cuales una buena parte eran versiones antiguas desactivadas.
Existe un pequeño script de shell muy conocido (creado por parte del equipo de Snapcraft) que recorre todas las aplicaciones Snap y elimina las revisiones desactivadas:
#!/bin/bash
# Removes old revisions of snaps
# CLOSE ALL SNAPS BEFORE RUNNING THIS
set -eu
snap list --all | awk '/desactivado/{print $1, $3}' | while read snapname revision; do
snap remove "$snapname" --revision="$revision"
done
Los pasos básicos son: copiar este contenido a un fichero (por ejemplo, limpia-snaps.sh), darle permisos de ejecución con chmod +x limpia-snaps.sh y ejecutarlo como root:
sudo ./limpia-snaps.sh
En un caso documentado, tras pasar el script el espacio ocupado en /var/lib/snapd/snaps bajó de 5,6 GB a 2,5 GB, es decir, se ganó más de la mitad del espacio ocupado por Snap.
7. Limpiar ficheros temporales y directorios típicos en servidores
En servidores, especialmente con paneles de control como Plesk, hay una serie de rutas que suelen ser las culpables directas de que el disco se llene. Conviene conocerlas para atacarlas antes de pedir una ampliación de espacio.
7.1. Directorios que más espacio suelen consumir
Al analizar con du -sh en la raíz y en /var, verás que los siguientes directorios son habituales sospechosos:
- /var/log/: logs del sistema, del servidor web, del correo, etc.
- /var/lib/psa/dumps/: copias de seguridad de Plesk, que pueden acumular gigas y gigas si no se rotan.
- /usr/local/psa/PMM/tmp/: ficheros temporales del gestor de backups de Plesk.
- /tmp/: archivos temporales del sistema y de diversas aplicaciones.
- /var/www/vhosts/: sitios web alojados en el servidor, con sus ficheros, logs propios y backups.
- /var/qmail/mailnames/: buzones de correo de los dominios gestionados por Plesk.
- /var/lib/mysql/: bases de datos MySQL/MariaDB, que pueden crecer muchísimo en aplicaciones activas.
Una vez localizado el directorio problemático, tienes que decidir qué se puede borrar, qué se puede archivar y qué conviene mover a otro volumen, siempre con cuidado para no cargarte servicios en producción.
7.2. Limpiar ficheros temporales y backups antiguos
En muchos casos el problema se reduce a backups viejos que ya no necesitas y ficheros temporales abandonados. Por ejemplo:
- Eliminar copias de seguridad muy antiguas de /var/lib/psa/dumps/ dejando sólo las últimas necesarias.
- Vaciar /tmp/ de ficheros que lleven tiempo sin tocarse, con cuidado de no interferir en procesos activos.
- Revisar y limpiar directorios de caché y temporales en los vhosts de /var/www/vhosts/.
Combinando estas acciones con la limpieza de logs que hemos visto antes, es frecuente recuperar varios gigas de espacio en servidores sobrecargados sin necesidad de redimensionar discos.
8. Eliminar archivos duplicados
Otra fuente silenciosa de consumo de espacio son los archivos duplicados repartidos por distintas carpetas (fotos, copias de proyectos, vídeos repetidos, etc.). En escritorios con años de vida, esto puede representar muchos gigas.
Hay herramientas con interfaz gráfica como FSlint o utilidades de línea de comandos como fdupes que se encargan de escanear un conjunto de directorios, encontrar ficheros idénticos y permitirte borrarlos o mantener sólo una copia.
La idea es elegir bien las rutas a analizar (por ejemplo, tu carpeta personal y discos de datos) e ir revisando los resultados antes de borrar, para evitar cargarte algo importante por error.
9. Herramientas gráficas para limpiar Linux (Stacer y similares)
Si no te apetece recordar comandos o gestionarlos uno a uno, existen utilidades con interfaz gráfica que centralizan gran parte de las tareas de limpieza y mantenimiento en unos pocos clics.
Una de las más conocidas en Ubuntu y derivados es Stacer, que reúne en una sola ventana:
- Información de uso de recursos y espacio en disco.
- Gestión de aplicaciones de inicio y servicios.
- Limpiador de cachés, logs, archivos temporales y más.
Aunque este tipo de programas facilitan la vida, hay quien prefiere no instalar más software para no consumir espacio adicional, y se apaña sólo con la terminal. Aquí ya entra el gusto personal: si vas justo de espacio, quizá te interese aprender los comandos y ahorrarte aplicaciones extra.
10. Mover aplicaciones y procesos, y vigilar el espacio
En algunos sistemas de escritorio, uno de los principales motivos por los que falta espacio es simplemente tener demasiadas aplicaciones instaladas en la misma partición en la que guardas tus datos personales.
Una opción es desinstalar lo que no uses, pero si no quieres prescindir de ciertos programas puedes moverlos o bien redistribuir los datos pesados a otras particiones o discos (por ejemplo, montando un segundo disco para /home, /var o una carpeta de datos).
En servidores, reducir el número de procesos y servicios innecesarios también ayuda indirectamente: menos servicios activos significa menos logs, menos cachés y, en algunos casos, menos datos generados.
11. Borrar espacio libre de forma segura en discos Linux
Hay situaciones en las que no sólo quieres liberar espacio —por ejemplo, liberar espacio de intercambio vacío (swap)— sino eliminar cualquier rastro recuperable de archivos que ya has borrado. Esto es especialmente importante si vas a vender un equipo, reutilizar un disco o manejas información sensible.
Si tienes, por ejemplo, un disco externo de 4 TB con 3 TB ocupados y 1 TB libre, lo que quieres es sobrescribir sólo el espacio libre, sin tocar los datos actuales. En Linux se puede hacer creando un archivo grande que llene ese hueco y luego eliminándolo.
Una forma típica es usar dd para escribir ceros o datos aleatorios en un archivo temporal dentro del sistema de archivos del disco externo:
cd /ruta/al/disco/externo
dd if=/dev/zero of=relleno bs=1M
El comando escribirá datos hasta que se llene el espacio libre. En ese momento borras el archivo:
rm relleno
Con esto has logrado pisar el espacio libre con ceros, dificultando enormemente la recuperación de los ficheros borrados previamente, pero conservando tus 3 TB de datos intactos. Si prefieres aleatoriedad, puedes usar if=/dev/urandom, sabiendo que será más lento.
Además de dd, existen utilidades como shred, cuyo objetivo clásico es sobrescribir repetidas veces un archivo o un dispositivo con patrones de unos y ceros aleatorios. En discos modernos y SSD hay matices técnicos sobre la eficacia absoluta de estos métodos, pero a efectos prácticos aumentan mucho la dificultad de recuperación.
12. Copias de seguridad y precauciones antes de grandes limpiezas
Antes de lanzarte a borrar a lo loco, sobre todo en servidores o en máquinas de producción, es muy recomendable tener alguna copia de seguridad reciente de los datos importantes. Aunque la guía se centra en liberar espacio, no está de más recordar que un comando mal escrito (por ejemplo, un rm -rf en el sitio equivocado) te puede dejar sin sistema.
Algunas suites comerciales, como ciertas soluciones de recuperación de datos para Linux, permiten hacer copias de seguridad o recuperar archivos de discos con problemas. Pueden ser útiles si ya has perdido información, pero la mejor estrategia siempre es prevenir.
En entornos de servidores, instalar un monitor de uso de disco que te avise cuando superas cierto porcentaje (80 %, 90 %, etc.) es una buena idea para adelantarte a los sustos y programar limpiezas o ampliaciones de almacenamiento con tiempo.
Con todos estos métodos combinados —desde autoremove, clean y la limpieza de miniaturas hasta la gestión de kernels, logs, snaps, backups de Plesk y borrado seguro del espacio libre— puedes mantener tu sistema Linux, ya sea de escritorio o servidor, en un estado sano, con espacio suficiente para trabajar y sin que vuelvan a aparecer los temidos avisos de «disco lleno» justo cuando menos te conviene.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.