Un buscador de duplicados escanea tu Mac y ofrece una cifra: 40 GB de duplicados, listos para eliminar. Los eliminas, abres Acerca de esta Mac y el espacio libre se ha movido 2 GB.
Nada falló. Los archivos estaban duplicados. La estimación seguía siendo errónea, porque en APFS dos archivos pueden contener los mismos bytes sin tener la misma cantidad de almacenamiento.
La versión corta: un escáner de duplicados mide el tamaño de los archivos. El espacio libre depende de los bloques. En APFS, esos dos números dejan de coincidir tan pronto como se trata de clones o enlaces físicos.
Respuesta rápida
- Un clon es un archivo independiente que comparte sus bloques con el original, por lo que al eliminar un lado se libera sólo lo que se ha separado.
- Un enlace físico es un segundo nombre para un inodo, por lo que eliminar un nombre no libera nada en absoluto.
lsy Finder informa el tamaño completo de cada nombre, que es exactamente lo que suma un escáner basado en el tamaño.ls -liexpone enlaces físicos a través del recuento de enlaces; Los clones son invisibles para las herramientas estándar.- La medida honesta es el espacio libre antes y después de la eliminación, tomada con
df -h /System/Volumes/Data. - Las instantáneas locales de Time Machine pueden contener los bloques de archivos que ya eliminó, por lo que el espacio regresa más tarde y no inmediatamente.
Lo que realmente mide un escáner de duplicados
Cada buscador de duplicados funciona en dos etapas. Agrupa archivos que podrían coincidir, normalmente por tamaño, y luego confirma la coincidencia leyendo el contenido o comparando hashes. Ambas etapas se preocupan por los bytes dentro del archivo.
El almacenamiento funciona un nivel más abajo. Un nombre de archivo apunta a un inodo, un inodo apunta a bloques y el contador de espacio libre rastrea los bloques. En el momento en que dos nombres comparten los mismos bloques, la suma de los tamaños de archivos deja de describir el disco.
Tres arreglos que parecen idénticos a un escáner
Una copia fiel. Dos archivos, dos inodos, dos conjuntos de bloques. Elimine cualquiera de los dos y el disco recuperará su tamaño completo. Esto es lo que todos suponen que están viendo.
Un clon. APFS crea clones cuando presionas Duplicar en Finder, cuando ejecutascp -cy cuando una aplicación llamaclonefile. El clon es un archivo real con su propio inodo, pero sus punteros de datos hacen referencia a los bloques originales. Las escrituras en ambos lados son copia en escritura: los bloques modificados se escriben por separado, los bloques intactos permanecen compartidos. Un clon que nunca ha sido editado no cuesta casi nada, y eliminarlo no devuelve casi nada.
Un enlace físico. Un inodo con dos entradas de directorio. No hay ningún segundo archivo, sólo un segundo nombre. Eliminar un nombre disminuye el recuento de enlaces y deja los datos en su lugar. El disco devuelve espacio cuando desaparece el apellido.
Un escáner basado en contenido ve los mismos bytes en los tres casos. A menos que verifique la capa del sistema de archivos, informa el mismo guardado para los tres.
Por qué la estimación se inclina hacia arriba
La capa de informes es el problema y es más antigua que APFS. Finder muestra el tamaño completo de un clon y de cada enlace físico, al igual quels -l. Ninguno de ellos te dice que el almacenamiento es compartido. Un escáner que suma tamaños de archivos hereda ese error directamente, y cuanto más se basa su flujo de trabajo en duplicados del Finder y copias con capacidad de clonación, mayor es la brecha.
duse comporta mejor de una manera específica. Dentro de una sola ejecución, cuenta un inodo una vez, por lo que una carpeta llena de enlaces físicos informa un total realista. Los clones todavía se cuentan dos veces, porque los clones son inodos separados.
El resultado es una estimación que puede ser errónea en un orden de magnitud en una Mac que contiene proyectos de video, renderizados exportados o imágenes de máquinas virtuales, que son exactamente los archivos que la gente clona en lugar de copiar.
Compruébalo antes de confiar en él.
Buscar enlaces físicos. La segunda columna dels -li es el recuento de enlaces.
ls -li ~/Movies/big.mov
# 12345678 -rw-r--r-- 2 chama staff 4294967296 Aug 18 09:12 big.mov
# ^ link count 2: another name points at the same data
Cualquier cosa por encima1 significa que eliminar este nombre no libera nada hasta que los otros nombres también desaparezcan.
Mida el ahorro real. Tome espacio libre antes y después, en el volumen de datos.
df -h /System/Volumes/Data # before
# delete the duplicates
df -h /System/Volumes/Data # after
La diferencia es el único número que describe su disco. Todo lo impreso antes de la eliminación es una predicción.
Es de esperar que los clones permanezcan invisibles. No hay ningún comando compatible que responda “¿este archivo es un clon?” en un sistema macOS estándar. Precisamente por eso una estimación de ahorro merece un nivel de confianza en lugar de un total confiable.
Eliminado y el espacio aún no ha regresado
Dos mecanismos retrasan el resultado incluso cuando los duplicados fueran reales.
Time Machine mantiene instantáneas locales en el disco de inicio y una instantánea contiene los bloques de archivos que existían cuando se tomó. Elimine un duplicado de 20 GB y esos bloques permanecerán asignados a la instantánea hasta que caduque. macOS lo informa como espacio purgable y lo reclama automáticamente cuando el disco se agota. Enumere lo que existe con:
tmutil listlocalsnapshots /
La Papelera es el caso más simple y atrapa personas con más frecuencia. Los archivos de la Papelera todavía ocupan bloques. Vacíelo y luego mida.
Cómo se ve un informe duplicado honesto
StorageRadar trata la estimación como una reclamación que debe sobrevivir a la revisión, por lo que el flujo de trabajo se basa en tres reglas.
Confirme la coincidencia byte por byte. Los candidatos se agrupan por tamaño, se examinan con un SHA-256 parcial en tres fragmentos y solo luego se comparan con un SHA-256 completo. El inodo, el dispositivo y el tamaño se vuelven a validar antes de cualquier acción, por lo que un archivo que cambió durante el escaneo no se puede eliminar con evidencia obsoleta.
Asigne incertidumbre al número. El ahorro físico estimado es anulable, conlleva un valor de confianza y enumera las razones por las que podría ser menor, incluidos los clones de APFS y los enlaces físicos. Un grupo duplicado que comparte bloques se informa como un grupo que liberará menos de lo que parece.
Nunca dejes un grupo sin un guardián. El paso de aplicación bloquea si tu selección eliminaría todas las copias, y las eliminaciones se ejecutan mediante un ensayo y una verificación previa antes de que algo se mueva, con la Papelera y una breve ventana para deshacer como valor predeterminado.
Los archivos exclusivos de la nube tampoco se modifican. Un archivo sin datos no se descarga para aplicar hash a menos que usted lo permita, porque materializar 200 GB de archivos de iCloud para compararlos no es una limpieza.
De dónde vienen los duplicados reales
Las herramientas con reconocimiento de clones reducen silenciosamente la cantidad de desperdicio genuino en una Mac moderna, por lo que es útil observar dónde todavía aparecen duplicados como copias completas:
- Descargas que llegaron dos veces debajo
file.zipyfile (1).zip. - Exporta y renderiza escrito junto al proyecto, luego copiado a una carpeta de entrega.
- Importaciones de cámaras y teléfonos que se ejecutaron dos veces en bibliotecas diferentes.
- Carpetas de proyecto copiadas a un directorio de respaldo en el mismo disco, que es una copia, no una copia de seguridad.
- Archivos descomprimidos dos veces en destinos diferentes.
Esas son copias normales con sus propios bloques, y al eliminar la adicional se obtiene el tamaño completo.
El orden que funciona
- Escanee y deje que la herramienta confirme los duplicados por contenido, no por nombre o tamaño.
- Lee la estimación de ahorro como un rango y comprueba si la herramienta admite almacenamiento compartido.
- Graba el espacio libre con
df -h /System/Volumes/Data. - Elimine de la Papelera, conserve una copia por grupo y vacíe la Papelera.
- Mida nuevamente y trate la diferencia como la verdad.
Si la segunda medición le decepciona, los archivos fueron almacenamiento compartido, no desperdicio. No se perdió nada y el disco ya era más pequeño de lo que sugería el informe.
Preguntas frecuentes
¿Por qué eliminar duplicados casi no libera espacio en mi Mac?
Las copias probablemente eran clones o enlaces físicos. En APFS, dos archivos pueden compartir los mismos bloques de almacenamiento, por lo que eliminar uno de ellos libera solo los bloques que difieren. El escáner contó el tamaño completo de ambos archivos porque eso es lo que informa el sistema de archivos para cada nombre.
¿Qué es un archivo clonado APFS?
Un clon es un archivo separado con su propio inodo que apunta a los mismos datos que el original. Las escrituras en ambos lados son copia sobre escritura, por lo que el par cuesta una copia de almacenamiento hasta que los contenidos divergen. El comando Duplicar del Finder y cp -c crean clones.
¿En qué se diferencia un enlace físico de un clon?
Un enlace físico es otro nombre para el mismo inodo, por lo que hay un objeto de archivo con dos entradas de directorio. Eliminar un nombre nunca libera almacenamiento mientras otro nombre todavía apunta a él. ls -li muestra el recuento de enlaces y cualquier valor superior a 1 significa que existen otros nombres.
¿APFS deduplica mis archivos automáticamente?
No. APFS comparte bloques solo cuando se crea un clon explícitamente, mediante Finder, cp -c o mediante una aplicación que llama clonefile. Dos archivos que contienen bytes idénticos todavía ocupan dos copias de almacenamiento.
¿Cómo mido cuánto espacio liberó realmente una limpieza?
Registre el espacio libre antes y después de la eliminación con df -h /System/Volumes/Data y compare. La estimación impresa por cualquier buscador de duplicados es una predicción y en APFS la predicción puede ser errónea en ambas direcciones.
¿Por qué no volvió el espacio libre incluso después de eliminar duplicados reales?
Las instantáneas locales de Time Machine mantienen los bloques de archivos eliminados hasta que se reducen, por lo que el espacio aparece como purgable en lugar de libre. Enumerelos con tmutil listlocalsnapshots / y espere a que se reduzca automáticamente o se libere espacio explícitamente.