· Amuyi
Hacer espacio sin perder nada
- tecnología
Una mañana la Mac avisó que el disco estaba casi lleno: 96% ocupado, 21 GB libres. Lo primero que pensé fue mover mis fotos y documentos a un disco externo. Antes de mover nada, medí, y esa medición cambió el plan.
Esta guía usa la Terminal, la app de macOS donde se escriben comandos (la encuentras en Aplicaciones → Utilidades). Cada comando va en su propia caja; debajo verás un ejemplo de lo que responde la Mac y qué significa cada parte. Los nombres de carpetas son de ejemplo: usa los tuyos.
Dos símbolos que aparecen seguido:
~es tu carpeta personal, la que lleva tu nombre de usuario.- Lo que va después de
#es un comentario para ti; la Mac lo ignora.
1. Medir cuánto espacio queda
df -h /System/Volumes/Data
df significa disk free (disco libre) y -h pide los tamaños en unidades fáciles de leer (G para gigas, M para megas). La Mac responde algo así:
Filesystem Size Used Avail Capacity Mounted on
/dev/disk3s5 460Gi 413Gi 21Gi 96% /System/Volumes/Data
- Size: el tamaño total del disco, 460 GB.
- Used: lo que ya está ocupado, 413 GB.
- Avail: lo que queda libre, 21 GB. Este es el número que nos importa.
- Capacity: el porcentaje ocupado. Arriba de 90% la Mac empieza a ir lenta y a fallar al actualizarse.
- Mounted on: dónde vive ese disco. En las Mac recientes tus archivos están en
/System/Volumes/Data.
2. Encontrar qué pesa más
du -sh ~/* ~/Library/* 2>/dev/null | sort -h | tail -8
Este comando tiene tres piezas unidas con |, que pasa el resultado de una a la siguiente:
du -shmide cada carpeta (disk usage):-sda un total por carpeta y-hlo hace legible.sort -hordena de menor a mayor, entendiendo que 2G es más que 900M.tail -8muestra sólo las últimas 8 líneas, las más pesadas.2>/dev/nullesconde los avisos de carpetas que la Mac no te deja leer.
La respuesta se parece a esto:
2.0G /Users/tu-usuario/Documentos
3.7G /Users/tu-usuario/Pictures
16G /Users/tu-usuario/Library/Caches
41G /Users/tu-usuario/Library/Developer
Cada línea es tamaño y carpeta. Aquí estuvo la sorpresa: mis fotos y documentos sumaban menos de 10 GB. El peso real estaba en Library/Developer, donde Xcode, la herramienta de Apple para hacer apps, guarda sus archivos. Sumando lo que Xcode tiene en otras partes del sistema, eran más de 170 GB.
3. Borrar primero lo que se puede volver a descargar
Hay archivos que son como la vajilla desechable: si los tiras, puedes conseguir otros iguales. Los simuladores (iPhones y relojes virtuales para probar apps), las cachés (copias temporales que las apps guardan para ir más rápido) y los archivos de soporte de Xcode entran ahí. Son lo más seguro de borrar, y casi siempre lo más grande.
xcrun simctl runtime list -j
Este comando lista los simuladores instalados. -j pide la respuesta en JSON, un formato de texto ordenado por etiquetas. Cada simulador aparece así (recortado):
"2B8996D4-91C7-46F6-BE1E-919D836E7931" : {
"platformIdentifier" : "com.apple.platform.iphonesimulator",
"version" : "18.0",
"sizeBytes" : 8400000000,
"lastUsedAt" : null
}
- La primera línea es el identificador, un nombre único que usarás para borrarlo.
- platformIdentifier dice qué aparato simula:
iphonesimulatores iPhone,watchsimulatores Apple Watch,xrsimulatores Vision Pro. - version es la versión del sistema: iOS 18.0.
- sizeBytes es el tamaño en bytes: 8 400 000 000 bytes son 8.4 GB.
- lastUsedAt es la última vez que lo usaste.
nullsignifica nunca.
Diez simuladores tenían null: los instaló una actualización y nunca los abrí. Para borrar uno, copias su identificador:
xcrun simctl runtime delete 2B8996D4-91C7-46F6-BE1E-919D836E7931
xcrun simctl delete unavailable
La primera línea borra ese simulador. La segunda limpia los iPhones virtuales que dependían de simuladores que ya no existen. Si todo sale bien, la Mac no responde nada: en la Terminal, el silencio casi siempre significa éxito. Al borrarlos, macOS también limpió sus cachés.
Luego revisé ~/Library/Developer/Xcode/iOS DeviceSupport. Ahí Xcode guarda una copia de soporte cada vez que conectas el iPhone con una versión nueva de iOS:
3.5G iPhone16,2 18.6 (22G86)
5.2G iPhone16,2 26.1 (23B85)
5.6G iPhone16,2 26.6.1 (23G83)
6.4G iPhone16,2 27.0 (24A437)
Cada línea es tamaño, modelo de teléfono (iPhone16,2 es el nombre interno de un modelo) y versión de iOS. Me quedé con las dos versiones que mi teléfono usa hoy y borré las anteriores; si algún día hacen falta, Xcode las vuelve a crear al conectar el teléfono.
Resultado: 53 GB libres en minutos, sin tocar un solo archivo personal.
4. Las apps que nunca abriste
macOS anota cuándo abriste cada app por última vez:
mdls -name kMDItemLastUsedDate /Applications/*.app
mdls lee los datos que macOS guarda sobre cada archivo, y kMDItemLastUsedDate es el dato de “último uso”. El * significa “todas”: todas las apps de la carpeta Aplicaciones. La respuesta es una línea por app:
kMDItemLastUsedDate = 2026-10-30 18:42:11 +0000
kMDItemLastUsedDate = (null)
- Una fecha es la última vez que la abriste. El
+0000indica que la hora está en tiempo universal, así que puede verse adelantada respecto a tu reloj. (null)significa que nunca la has abierto.
Elegí las que podía soltar y las mandé a la Papelera, que deja tiempo para arrepentirse. Las apps que instala el sistema piden tu contraseña para moverse; esas las arrastré desde el Finder. Vaciar la Papelera lo dejé para el final, cuando ya estaba seguro, porque ese paso sí es definitivo.
5. Mover a un disco externo: copiar, verificar, borrar
Para las fotos y los proyectos archivados usé tres pasos, siempre en este orden.
Paso 1, copiar:
rsync -aH ~/Archivo/Fotos /Volumes/Externo/Archivo/
rsync copia carpetas con cuidado. -a conserva fechas y permisos, y -H respeta los enlaces duros (cuando un mismo archivo aparece en dos carpetas sin ocupar doble espacio). /Volumes/Externo es donde macOS muestra el disco externo; cambia Externo por el nombre del tuyo. Si la copia sale bien, rsync no responde nada.
Paso 2, verificar:
rsync -aHcn --itemize-changes ~/Archivo/Fotos /Volumes/Externo/Archivo/
Es el mismo comando con tres añadidos:
-ccompara el contenido de cada archivo con una huella digital llamada checksum. Si cambia un solo punto de una foto, la huella cambia.-nes un ensayo: sólo reporta, no copia nada.--itemize-changesexplica cada diferencia que encuentre.
Si no responde nada, cada archivo del disco externo es idéntico al original. Si algo no coincide, verás una línea como esta:
>fc........ Fotos/2024/DSC01177.ARW
Las primeras letras cuentan qué pasa: > significa que el archivo tendría que copiarse otra vez, f que es un archivo y c que su contenido es distinto. Luego viene el nombre del archivo. En ese caso, repite el paso 1 y verifica de nuevo.
Paso 3, borrar el original, sólo cuando el paso 2 no respondió nada:
rm -rf ~/Archivo/Fotos
rm borra sin pasar por la Papelera, por eso va al final. Una copia verificada es una mudanza; sin verificar, es una esperanza.
Dejé en su lugar la fototeca de la app Fotos. Fotos e iCloud esperan encontrarla en el disco interno, y moverla a mano es la forma más fácil de romperla.
6. Medir otra vez al final
Al repetir el comando del paso 1, había menos espacio libre que una hora antes. Busqué con el comando del paso 2 y encontré la causa: un administrador de programas para desarrolladores había actualizado dos apps esa misma mañana, y guardó los instaladores y respaldos de las versiones anteriores, 11 GB en total. Medir al final importa tanto como medir al principio, porque la máquina sigue trabajando mientras limpias.
Una estrategia para lo que viene
La limpieza dejó una idea clara: cada archivo pertenece a uno de tres tipos, y cada tipo pide su propio cuidado.
| Tipo | Ejemplos | Dónde vive | Cómo se sincroniza |
|---|---|---|---|
| Regenerable | simuladores, cachés, dependencias | sólo en la máquina | se vuelve a descargar |
| De trabajo | código, sitios, notas activas | cada máquina donde trabajas | git, con un remoto como fuente de verdad |
| Archivo | fotos RAW, proyectos terminados | un disco externo | rsync en una sola dirección, con verificación |
Git es un programa que guarda la historia de cada cambio en una carpeta y la comparte entre máquinas. El remoto es la copia central, en un servidor en casa o en la nube, de donde las demás máquinas toman y a donde mandan sus cambios.
Las reglas que me llevo:
- Una fuente de verdad por carpeta. La sincronización en dos direcciones sirve para lo que cambia a diario; para un archivo, conviene que la copia siga al original.
- Git para lo que se escribe. Cualquier máquina puede clonar el trabajo, y el historial cuenta qué cambió y cuándo.
- Verificar cada copia. El checksum tarda un poco más y te deja borrar con calma.
- Recordar dónde quedó cada cosa. Si una carpeta vive sólo en el disco externo, las herramientas que la usan necesitan el disco conectado y la ruta nueva.
El disco pasó del 96% al 83%. Lo que más ocupaba era lo que menos valía, y lo que más valía cabía en unos cuantos gigas.