La limpieza del sistema en Linux no consiste en borrar carpetas al azar para ganar unos cuantos gigas. Un sistema Linux puede acumular caches de paquetes, versiones antiguas del kernel, logs, archivos temporales, caches de usuario y restos de contenedores. Todo eso puede ocupar bastante espacio, pero no todo debe eliminarse de la misma forma ni con el mismo nivel de confianza.
La idea correcta es sencilla: primero inspeccionar, después entender que se va a borrar y solo al final ejecutar la limpieza. Este enfoque evita uno de los errores mas comunes: aplicar comandos destructivos copiados de internet sin saber si afectan a datos personales, configuraciones, bases de datos, imágenes de Docker o archivos que una aplicación todavía necesita.
En esta guía veremos una forma práctica la limpieza del sistema en Linux. El objetivo es liberar espacio sin romper el sistema, explicando por que importa cada paso y que precauciones conviene tomar.
Si quieres aprender más sobre Linux, revisa nuestra Guía completa de comandos Linux y nuestro Curso de Linux gratis , te ayudarán a dominar la terminal y a sacar el máximo provecho de este artículo.
Antes de limpiar: mirar que ocupa espacio
Antes de borrar nada, conviene saber donde esta el problema. No es lo mismo un disco lleno por logs, por imágenes de contenedores, por paquetes descargados, por una carpeta de usuario o por snapshots del sistema.
Para ver el uso general de los sistemas de archivos:
df -hEste comando muestra cuanto espacio esta usado y disponible en cada punto de montaje. Es especialmente util para detectar si el problema esta en /, en /home, en /var o en otra partición.
Despues, para revisar que directorios ocupan mas dentro de una ruta concreta:
sudo du -h --max-depth=1 /var | sort -hTambién puedes revisar tu carpeta personal:
du -h --max-depth=1 "$HOME" | sort -hLa diferencia entre df y du es importante. df mira el espacio usado a nivel de sistema de archivos. du suma el tamaño de archivos y directorios visibles desde una ruta. Si ambos no cuadran, puede haber archivos borrados pero aun abiertos por algún proceso, montajes especiales o snapshots.
Para una inspección mas cómoda, una herramienta muy práctica es ncdu:
sudo apt install ncdu
sudo ncdu /En distribuciones que no usan APT, instala ncdu con el gestor de paquetes correspondiente. Esta herramienta permite navegar por carpetas grandes y ver rápidamente donde se concentra el consumo. Aun así, no borres desde ncdu sin entender que es cada directorio.
Limpiar la cache del gestor de paquetes
Los gestores de paquetes suelen guardar archivos descargados para acelerar reinstalaciones o permitir ciertas operaciones sin volver a descargarlo todo. Con el tiempo, esa cache puede crecer.
En sistemas Debian, Ubuntu y derivados, puedes ver el tamaño aproximado de la cache de APT:
sudo du -sh /var/cache/aptPara limpiar paquetes descargados que ya no son necesarios:
sudo apt cleanapt clean elimina los paquetes .deb descargados de la cache local. No desinstala programas. Simplemente borra instaladores descargados que APT puede volver a obtener desde los repositorios si hacen falta.
Una opción menos agresiva es:
sudo apt autocleanapt autoclean elimina solo paquetes descargados que ya no se pueden obtener o que han quedado obsoletos. Es mas conservador, aunque normalmente libera menos espacio.
En Fedora, RHEL y derivados con DNF:
sudo dnf clean allEn Arch Linux y derivados, la cache de pacman puede crecer bastante porque guarda versiones anteriores de paquetes:
sudo du -sh /var/cache/pacman/pkgUna forma razonable de conservar algunas versiones y borrar el resto es usar paccache:
sudo paccache -rEsto mantiene por defecto las ultimas versiones y borra paquetes antiguos. Es mas prudente que vaciar toda la cache sin criterio.
Eliminar paquetes que ya no se usan
Cuando instalas programas, también se instalan dependencias, por tanto, eliminar paquetes que no usas, ayuda con la limpieza del sistema en Linux. Al desinstalar el programa principal, algunas dependencias pueden quedarse instaladas aunque ya no hagan falta.
En Debian, Ubuntu y derivados:
sudo apt autoremoveAntes de aceptar, lee la lista de paquetes que se van a eliminar. Si ves algo que reconoces como importante, cancela y revisa. autoremove suele ser seguro, pero no conviene aceptarlo a ciegas en servidores o equipos con instalaciones delicadas.
En Fedora o sistemas con DNF:
sudo dnf autoremoveEn Arch Linux puedes localizar paquetes instalados como dependencias que ya no son requeridos por otros paquetes:
pacman -QtdqSi la lista tiene sentido, se pueden eliminar con:
sudo pacman -Rns $(pacman -Qtdq)Este último comando conviene usarlo con cuidado. Si pacman -Qtdq no devuelve nada, el comando puede fallar. Y si no has revisado la lista antes, puedes borrar paquetes que querias conservar manualmente.
Revisar kernels antiguos
En algunas distribuciones, después de muchas actualizaciones, pueden quedar versiones antiguas del kernel ocupando espacio en /boot o en el sistema. Tener uno o dos kernels anteriores puede ser útil por seguridad: si el kernel nuevo falla, puedes arrancar con uno anterior.
Lo que no suele tener sentido es acumular muchas versiones antiguas durante meses.
Para ver el kernel que estas usando ahora:
uname -rNunca elimines el kernel que aparece en uname -r.
En Ubuntu y derivados, normalmente apt autoremove se encarga de retirar kernels antiguos cuando ya no son necesarios:
sudo apt autoremoveSi /boot esta lleno, revisa primero que paquetes de kernel hay instalados:
dpkg --list | grep linux-imageLa limpieza manual de kernels debe hacerse con cuidado. Borrar archivos directamente de /boot no es la forma recomendable. Es mejor usar el gestor de paquetes para desinstalar versiones concretas, porque también actualiza la configuración relacionada.
Controlar los logs de systemd journal
En sistemas con systemd, los logs del journal pueden ocupar bastante espacio, sobre todo si hay servicios generando errores continuamente.
Para ver cuanto ocupa el journal:
journalctl --disk-usagePara limpiar logs antiguos dejando, por ejemplo, solo los últimos 7 días:
sudo journalctl --vacuum-time=7dTambién puedes limitar por tamaño:
sudo journalctl --vacuum-size=1GEsto no arregla la causa de un log enorme. Si el journal crece sin parar, conviene revisar que servicio esta escribiendo demasiado:
journalctl -p warning -bLimpiar logs libera espacio, pero si hay un error repetitivo, el espacio volverá a llenarse. Por eso la limpieza de logs debe ir acompañada de una revisión mínima del motivo.
Revisar logs grandes en /var/log
Ademas del journal, muchos programas escriben logs en /var/log. Revisar regularmente /var/logs ayuda con la limpieza del sistema en Linux. Algunos sistemas rotan estos archivos automáticamente con logrotate, pero puede haber logs antiguos comprimidos o archivos que han crecido demasiado.
Para localizar archivos grandes:
sudo find /var/log -type f -size +100M -exec ls -lh {} \;Si encuentras un log enorme, no lo borres directamente sin pensar. Primero mira a que servicio pertenece y si el archivo esta en uso. Para vaciar un log activo sin romper el descriptor del proceso, suele ser mejor truncarlo:
sudo truncate -s 0 /ruta/al/logPero incluso esto debe hacerse solo cuando sabes que ese log no contiene información necesaria para diagnosticar un problema reciente.
Si hay muchos logs antiguos comprimidos, revisa la configuración de logrotate:
ls /etc/logrotate.d/La solución buena no siempre es borrar, sino ajustar la rotación para que el sistema no vuelva a acumular archivos innecesarios.
Limpiar archivos temporales
Linux usa directorios temporales como /tmp y /var/tmp. Muchos sistemas limpian /tmp automáticamente al reiniciar o mediante tareas programadas, pero no siempre ocurre igual.
Para revisar el tamaño:
sudo du -sh /tmp /var/tmpAntes de borrar, comprueba si hay procesos usando archivos temporales. En un equipo personal, suele bastar con cerrar aplicaciones y reiniciar antes de limpiar. En un servidor, hay que ser mas cuidadoso.
Una limpieza conservadora de archivos antiguos en /tmp podría ser:
sudo find /tmp -type f -atime +7 -deleteEste comando borra archivos de /tmp que no se han accedido en mas de 7 días. Aunque parezca razonable, sigue siendo destructivo. Por eso conviene probar primero sin -delete:
sudo find /tmp -type f -atime +7Primero miras. Después borras.
Limpiar la cache del usuario
En escritorios Linux, la carpeta ~/.cache puede crecer mucho. Navegadores, editores, miniaturas, herramientas de desarrollo y aplicaciones graficas guardan datos temporales ahi.
Para ver cuanto ocupa:
du -sh ~/.cacheY para revisar que subcarpetas pesan mas:
du -h --max-depth=1 ~/.cache | sort -hEn general, borrar contenido de ~/.cache no debería eliminar documentos personales, pero puede cerrar sesiones, obligar a regenerar indices, borrar miniaturas o hacer que algunas aplicaciones tarden mas al abrirse. Lo mas prudente es borrar caches concretas que entiendas, no vaciar todo por costumbre.
Ejemplos frecuentes:
du -sh ~/.cache/thumbnails
du -sh ~/.cache/mozilla
du -sh ~/.cache/google-chromeSi una aplicación esta abierta, ciérrala antes de limpiar su cache. Borrar caches mientras una aplicación las usa puede provocar comportamientos raros o que se vuelvan a crear inmediatamente.
Buscar archivos grandes en el sistema
Cuando el disco se llena y no esta claro por que, buscar archivos grandes ayuda mucho. Puedes empezar por tu carpeta personal:
find "$HOME" -type f -size +1G -exec ls -lh {} \;Para todo el sistema:
sudo find / -xdev -type f -size +1G -exec ls -lh {} \; 2>/dev/nullLa opción -xdev evita cruzar a otros sistemas de archivos montados. Esto ayuda a no mezclar resultados de discos externos, particiones especiales o montajes de red.
Cuando encuentres un archivo grande, pregúntate:
- Es un archivo personal que quiero conservar?
- Es una copia de seguridad antigua?
- Es una imagen ISO descargada?
- Es un log?
- Es una base de datos?
- Pertenece a una maquina virtual o contenedor?
La respuesta cambia la acción. Un video duplicado se puede mover o borrar. Una base de datos no se debe tocar sin backup y sin saber que servicio la usa.
Limpiar restos de Docker y contenedores
Si usas Docker, Podman u otra tecnología de contenedores, el espacio puede desaparecer rápido. Imágenes antiguas, contenedores detenidos, volúmenes sin uso y caches de build pueden ocupar muchos gigas.
Con Docker, revisa primero el uso:
docker system dfPara eliminar contenedores detenidos, redes no usadas, imágenes sin referencia y cache de build:
docker system pruneDocker pedirá confirmación. Lee lo que va a borrar.
Para incluir imágenes no usadas por contenedores existentes:
docker system prune -aEsta opción puede liberar mucho mas, pero también hará que tengas que volver a descargar o reconstruir imágenes. No borra volúmenes por defecto, y eso es bueno: los volúmenes pueden contener datos importantes, como bases de datos.
Para ver volúmenes:
docker volume lsPara borrar volúmenes no usados:
docker volume pruneAquí hay que tener especial cuidado. Un volumen aparentemente «sin uso» puede contener datos que esperabas reutilizar mas adelante. Antes de borrar volúmenes, revisa tus proyectos, tus docker-compose.yml y si tienes bases de datos dentro de Docker.
Con Podman puedes revisar:
podman system dfY limpiar:
podman system pruneLa regla es la misma: inspecciona antes y no borres volúmenes sin tener claro que contienen.
Limpiar caches de herramientas de desarrollo
En equipos de desarrollo, muchas herramientas guardan paquetes y caches propias. A veces ocupan mas que el sistema base.
Algunos ejemplos habituales:
du -sh ~/.npm
du -sh ~/.cache/pip
du -sh ~/.cargo
du -sh ~/.gradle
du -sh ~/.m2Cada ecosistema tiene su forma recomendada de limpiar. Por ejemplo:
npm cache verify
npm cache clean --force
pip cache dir
pip cache purgeNo todas las caches deben borrarse siempre. Si trabajas a diario con esos lenguajes, limpiar demasiado puede hacer que las siguientes instalaciones sean mas lentas. La limpieza tiene sentido cuando el disco esta ajustado, cuando hay caches corruptas o cuando hay versiones antiguas acumuladas.
Que no deberías borrar a ciegas
Hay directorios que aparecen en muchas guías rápidas, pero tocarlos sin entenderlos puede romper el sistema o borrar datos importantes.
No borres a ciegas:
- /bin, /sbin, /usr, /lib o /lib64: contienen programas y bibliotecas del sistema.
- /etc: contiene configuraciones. Antes de tocar algo aquí, haz copia y entiende el servicio afectado.
- /var/lib: puede contener bases de datos, estado de paquetes, datos de Docker, servicios y aplicaciones.
- /home: contiene datos de usuarios. No limpies carpetas personales sin revisar.
- /boot: contiene kernels y archivos de arranque. Usa el gestor de paquetes para limpiar kernels.
- Volumenes de Docker o Podman: pueden contener datos persistentes.
- Archivos de bases de datos: no los muevas ni borres con el servicio activo.
Tampoco ejecutes comandos del tipo sudo rm -rf sobre rutas que no entiendes. Si necesitas borrar muchos archivos, primero lista exactamente lo que se eliminaría. Una buena practica para la limpieza del sistema en Linux, es construir el comando en dos pasos: primero con find sin -delete, después con -delete solo cuando el resultado sea correcto.
Conclusión
Una buena limpieza del sistema en Linux empieza con diagnostico, no con borrado. Comandos como df, du, ncdu, journalctl –disk-usage o docker system df te dicen donde esta el espacio ocupado. A partir de ahí puedes limpiar caches de paquetes, dependencias sin uso, logs antiguos, temporales, caches de usuario y restos de contenedores con mucho mas criterio.
La clave para una buena limpieza del sistema en Linux es, no convertir la limpieza en una lista mecánica de comandos. Cada paso tiene una razón: liberar cache recuperable, reducir logs demasiado grandes, retirar paquetes huérfanos, controlar kernels antiguos o eliminar recursos de contenedores que ya no se usan. Si inspeccionas primero y borras después, Linux se mantiene limpio sin poner en riesgo tus datos ni la estabilidad del sistema.
