Encontrar y eliminar archivos grandes en Mac con seguridad
La forma más rápida de saber qué usa el disco es medirlo, no recorrer Finder carpeta por carpeta. La medición aún necesita interpretación: una biblioteca de Photos de 40 GB no es lo mismo que un instalador de 40 GB, y las capturas de APFS, los clones y el espacio liberable pueden hacer que dos herramientas correctas muestren totales con aspecto distinto.
Aquí se explica cómo se contabiliza el espacio en disco, cómo medirlo y cómo encontrar los elementos grandes con seguridad.
Por qué el disco está lleno pero los archivos no suman
Los Mac modernos usan el sistema de archivos APFS, y APFS reporta el espacio de forma distinta a lo que muestra Finder. Dos categorías ocultan gigabytes:
- Capturas locales. Time Machine guarda capturas de un momento de tu disco en la unidad interna entre copias de seguridad. Fijan el espacio de archivos que ya eliminaste, porque la captura aún los referencia, hasta que macOS las reduce. Apple indica que las capturas horarias se conservan normalmente unas 24 horas y se eliminan automáticamente al envejecer o cuando se necesita espacio. Lístalas con:
tmutil listlocalsnapshots /
- Espacio liberable. APFS marca cachés, capturas locales y contenido que se puede volver a descargar como liberable: espacio que macOS recupera por sí solo cuando algo lo necesita. macOS puede contarlo como disponible, y Finder puede incluirlo en el total disponible. No se puede borrar de forma fiable a mano.
Comprueba los números con:
df -h /
diskutil apfs list
diskutil apfs listSnapshots /
df reporta lo que el sistema de archivos montado considera usado y disponible.
diskutil apfs list muestra el contenedor compartido, sus volúmenes y la
capacidad restante. diskutil apfs listSnapshots / lista las capturas asociadas
al volumen de arranque. Cuando Finder dice que el disco está más lleno de lo que
explican tus archivos, estas vistas ayudan a separar el uso ordinario de archivos
de las capturas y la capacidad compartida de APFS.
Mide el uso real desde la línea de comandos
Para encontrar las carpetas pesadas, du (disk usage) es la herramienta central.
Desde tu carpeta de inicio:
du -sh ~/* ~/Library 2>/dev/null | sort -h
-s da un resumen por elemento, -h imprime tamaños legibles y canalizar a
sort -h deja lo más grande al final. Profundiza en un resultado grande a la vez.
Terminal puede necesitar Full Disk Access para datos protegidos de apps, y un
escaneo de la carpeta de inicio puede tardar mucho cuando cruza carpetas en la
nube o árboles de desarrollo.
El número no siempre es la asignación física. Los hard links dan varios nombres al
mismo archivo subyacente, y los clones de APFS comparten bloques hasta que una
copia cambia. Los totales de carpeta y el espacio libre del contenedor pueden, por
tanto, responder preguntas distintas. Usa du para localizar candidatos y luego
Get Info de Finder y la vista de capacidad de APFS antes de una eliminación de alto
impacto.
Para encontrar archivos grandes individuales en lugar de carpetas, find filtra
por tamaño:
find ~/Downloads ~/Movies ~/Desktop -type f -size +500M -print 2>/dev/null
Empieza por carpetas que controlas tú en lugar de escanear todo el directorio de
inicio. El comando atrapa exportaciones de video olvidadas, imágenes de disco y
archivos comprimidos sin recorrer cada base de datos de aplicación. Amplía la lista
de raíces solo cuando sea necesario.
Para un mapa interactivo en la terminal, ncdu puede recorrer una carpeta elegida
por tamaño. Trátalo primero como herramienta de descubrimiento de solo lectura;
revela un candidato en Finder y muévelo a la Papelera tras identificarlo, en lugar
de borrar desde un árbol desconocido dentro de ncdu.
Recupera el espacio oculto
Si el problema son capturas o espacio liberable más que un solo archivo, liberar espacio real que controlas da a macOS margen mientras envejece o reduce automáticamente las capturas locales y las cachés liberables. Volver a conectar un disco de Time Machine hace disponible más historial de copias, pero no es un comando manual para purgar capturas. Rara vez hace falta forzar cualquiera de las dos categorías a mano.
Un mapa visual, cuando una lista no basta
Los tamaños en la terminal son útiles, pero difíciles de mantener en la cabeza a lo largo de todo un disco. Un treemap lo resuelve dibujando cada carpeta como un rectángulo a escala de su tamaño, de modo que lo más grande son los bloques más grandes y de un vistazo se ve dónde está el peso. La vista Analyze de Mole es el equivalente gráfico al recorrido por rutas de arriba: mapea todo el disco desde la raíz, profundiza con un clic y te deja revelar un elemento en Finder o enviarlo a la Papelera (desde el menú contextual, con confirmación de tamaño, y recuperable hasta vaciar la Papelera). Las raíces de navegación como tu carpeta de inicio no tienen opción de borrar, así que un clic erróneo no puede eliminar algo estructural. Usa lo que prefieras; el treemap y los comandos responden la misma pregunta.
Bajo el capó: cómo un analizador de disco se mantiene rápido
No necesitas esta parte para liberar espacio, pero si alguna vez te has preguntado
por qué un buen mapa de disco responde en segundos donde un script ingenuo se
arrastra, aquí va su forma. El ejemplo es la herramienta de línea de comandos de
código abierto de Mole, en concreto su analizador en
Go en cmd/analyze. La app nativa tiene un escáner Swift aparte, pero ambos
mantienen la concurrencia acotada y deduplican hard links.
du, la deduplicación de hard links cuenta cada byte una vez y los heaps Top-N evitan ordenar todo el árbol.La forma lenta es la obvia: recorrer cada carpeta, hacer stat de cada archivo,
sumarlo todo y luego ordenar. En un directorio de inicio con millones de archivos
pequeños eso es a la vez lento y hambriento de memoria. El escáner evita ambas
trampas con tres ideas.
Acotado, pero no con un solo límite. El paralelismo ingenuo lanza una
goroutine por carpeta y funde el disco. El escáner mantiene presupuestos separados
para recursos distintos: un pool de workers de directorio (de 2 a 12, según a tus
núcleos), un pool mucho más pequeño de como máximo cuatro subprocesos du
concurrentes (porque du ya es paralelo en E/S, y correr más solo hace que el
disco se atropelle), y un límite de cola para que el trabajo pendiente no se
infle en miles de goroutines apiladas. Colapsar eso en un solo límite es cómo las
herramientas de disco acaban o lentas o hambrientas de memoria.
Quédate solo con los ganadores. Quieres las carpetas más grandes, no todas, así que el escáner nunca ordena todo el disco. Transmite cada elemento medido por dos min-heaps, uno con el Top 30 de carpetas y otro con el Top 20 de archivos. Cuando un heap está lleno, un elemento nuevo se compara con el superviviente más pequeño y se descarta si no lo supera. Eso es aproximadamente lineal en el número de archivos y mantiene solo unas decenas de entradas en memoria, en lugar de ordenar millones.
Cuenta cada byte una vez. Un archivo con varios hard links se sumaría de otro
modo una vez por enlace. El escáner registra el par (device, inode) de cada
archivo la primera vez que lo ve y salta las repeticiones, que es cómo sus totales
coinciden con du. Incluso se niega a cachear un total de carpeta que dependió de
esta deduplicación, porque ese número depende del orden de escaneo y envenenaría un
reescaneo independiente posterior.
Nada de esto es exótico. Es la diferencia entre una herramienta que responde «qué está llenando mi disco» en segundos y un bucle de shell que no, y el treemap de arriba es la interfaz de exactamente este motor.
Clasifica antes de eliminar nada
Encontrar un elemento grande no es permiso para borrarlo. Coloca cada candidato en uno de tres cubos:
- Reemplazable: instaladores verificados, salida de compilación reproducible y cachés documentadas. Comprueba el coste de descargarlos o reconstruirlos antes de quitarlos.
- Personal u operativo: fotos, mensajes, archivos de proyectos, discos de máquinas virtuales, pesos de modelos y copias de dispositivos. Exporta, respalda o retira estos a través de la app propietaria.
- Gestionado por la app o por el sistema: bases de datos de paquetes,
contenedores, bibliotecas de Photos o Mail, capturas y cualquier cosa bajo
/System. Usa los controles de la app o déjalo en paz.
Si una carpeta grande pertenece a una app que ya no usas, sigue su desinstalador documentado y luego revisa sus restos. Mueve los archivos ordinarios primero a la Papelera y déjalos ahí hasta que la app y el proyecto afectados sigan funcionando. Vaciar la Papelera es el paso irreversible.
Para la limpieza más amplia más allá de archivos grandes sueltos, consulta cómo liberar espacio sin perder archivos.
Un método repetible
Primero compara df, la capacidad de APFS y los ajustes de Almacenamiento para
saber si el problema es presión física real o clasificación. Luego mide raíces
seleccionadas, profundiza en la rama más grande y clasifica el candidato por
propiedad y recuperabilidad. Quita primero los datos reemplazables, maneja los
datos personales mediante copias de seguridad y apps propietarias, y mantén las
eliminaciones ordinarias recuperables en la Papelera hasta haber verificado el
resultado.