24 votos

Sustituir los archivos duplicados existentes en APFS por clones

¿Existe una forma de utilizar la función de clonación de copia en escritura de APFS para recuperar el espacio de los archivos duplicados existentes?

Cuando se copia un archivo en APFS, no se duplican realmente los bloques del archivo, sino que se clonan los metadatos. Esto evita que se utilice más espacio hasta que se realice una edición en el archivo duplicado. Parece que debería haber alguna herramienta para encontrar los duplicados existentes y sustituirlos por clones, recuperando el espacio utilizado para almacenar el duplicado.

Preguntas relacionadas con Comunidades Apple y el Foros de MacRumors no tienen nada.

3 votos

Es difícil de creer que nadie haya escrito una aplicación para hacer esto todavía. Sólo en mi carpeta de inicio, hay 4,41 GB que se pueden ahorrar al hacer esto. Eso no es ni mucho menos una cantidad insignificante. Tomad nota: desarrolladores de aplicaciones, ¡pagaría gustosamente unos cuantos dólares por esto!

12voto

MargaaMarius Puntos 6

A partir de junio de 2020, Jdupes puede hacer esto.

Por ejemplo, esto encontrará todos los duplicados en su carpeta de Aplicaciones:

jdupes --recurse --dedupe /Applications/ 

ADVERTENCIA: Versiones anteriores 1.19.0 se sobrescribir los metadatos (fecha, propietario, permiso) Las versiones más recientes conservan todos los metadatos al utilizar jdupes --dedupe en sistemas de archivos APFS.

1 votos

Los metadatos se declaran fijos en 1.19.0

0 votos

Esto es increíble y casi seguro que también funcionará en dispositivos APFS con jailbreak iOS (iOS 10.3+). ¡Voy a compilar jdupes en mi iPad y ver si puedo dedupe!

0 votos

Actualización: jdupes 1.19 y 1.20 compilan perfectamente en mis sistemas iOS 12.4 y 13.3 jailbroken usando clang 10 y iOS SDK 12.4 y 13.4. ¡¡¡El APFS clonefile(2) CoW dedupe es increíble!!! Los archivos de prueba con los que he experimentado han funcionado de maravilla. Puedo ganar al menos 10 GB en mi (completo) de 256 GB iPad Pro de deduplicación, pero todavía estoy probando para ganar más confianza antes de convertir jdupes suelto en mi disco entero.

5voto

Pankaj Badhe Puntos 6

Tuve el mismo problema y escribí un pequeño shell script para hacer esto usando la versión nativa cp , mv , jdupes (para la velocidad), y gcp (para la conservación de los metadatos). Espero que esto ayude.

Ventaja sobre otras soluciones:

1 votos

¿Cómo se utiliza este script? ¿Hay documentación en alguna parte?

2 votos

jdupes ahora compatible con APFS clonefile() de forma nativa a partir de v1.17.1 - utilice jdupes -B igual que con BTRFS/XFS en Linux. github.com/jbruchon/jdupes/releases

5voto

Comprueba diskDedupe http://www.diskdedupe.com Hace exactamente lo que usted busca.

Sólo tiene dos botones (escanear y deduplicar) y mantiene todos los metadatos, al sustituir un duplicado por un clon del original.

Lo he utilizado en todos mis archivos.

3 votos

Bienvenido a Ask Different. ¿Qué experiencia tienes con este programa? Parece que te acabas de unir a este sitio hoy, así que nos gustaría saber por qué recomiendas este software en concreto.

3 votos

Hola fsb, he esperado APFS desde que Apple decidió escribir su propio sistema de archivos APFS, en lugar de utilizar ZFS. Entonces me decepcionó que APFS no proporciona ninguna funcionalidad de deduplicación como lo hace ZFS. Por lo tanto, estaba buscando una aplicación sencilla que proporcione al menos algo de deduplicación offline. Encontré diskDedupe a través de la búsqueda en Google de APFS y deduplicación y lo probé. También encontré esta página y quería compartir mi experiencia. Utilizo diskDedupe desde hace más de 4 meses, no es caro y me ha ahorrado mucho espacio en disco.

0 votos

Gracias a @fsb por ser escéptico y analizar las afirmaciones y también a peter1999 por exponer claramente sus motivos y casos de uso, que parecen plausibles y creíbles.

4voto

vwankerl Puntos 31

Hay algunos scripts scripts de calidad alfa que intentan hacer esto - https://github.com/ranvel/clonefile-dedup

0 votos

Sí, yo también encontré este. Lamentablemente hay un par de razones por las que no lo encuentro utilizable: en última instancia, es sólo usar cp -c que descarta todos los metadatos del archivo de origen (propietario, permiso, atributos extendidos, etc.). Y no hay ninguna razón por la que no se pueda hacer con un script, llamando a sqlite3 directamente, tienes que instalar Python 3, lo que significa que está fuera de los límites de los no administradores que no pueden cambiar la configuración para ejecutar código no firmado/no firmado por la tienda de aplicaciones.

2 votos

Presenté algunos cambios (y fueron aprobados) a github.com/ranvel/clonefile-dedup Ahora conservará la fecha y la hora del archivo, así como los atributos chown/chmod.

2voto

Cameron MacFarland Puntos 27240

Ver también https://github.com/deckarep/apfs-compactor que también es sólo un prototipo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X