Eliminare i file duplicati è uno dei metodi più ovvi per recuperare spazio su qualunque sistema, compresi i dispositivi Mac. Hyperspace è un software che affronta quest’esigenza con un approccio innovativo: i file restano tutti al loro posto, con nomi, date, permessi e percorsi originali; ciò che scompare è soltanto la duplicazione fisica dei dati sull’unità di archiviazione.
L’idea alla base di Hyperspace (download) sfrutta una funzione che Apple integra nel file system APFS, introdotto nel 2017 con macOS High Sierra e ormai utilizzato abitualmente. APFS supporta i cosiddetti file clone: due o più file possono possedere metadati indipendenti ma condividere gli stessi blocchi di dati. Apple usa già questo meccanismo, per esempio, quando Finder duplica un file all’interno dello stesso volume APFS: Hyperspace adotta lo stesso principio applicandolo su copie identiche di file create in momenti e cartelle differenti.
Il risultato può essere sorprendente soprattutto sui Mac che accumulano immagini, video, archivi, progetti e copie locali dello stesso materiale. Un video da 20 GB conservato cinque volte può continuare ad apparire come cinque file distinti senza richiedere necessariamente 100 GB di dati fisicamente duplicati. Hyperspace non comprime i file e non crea collegamenti simbolici: modifica il modo in cui APFS associa quei file ai blocchi presenti sull’unità di memorizzazione.

Come Hyperspace recupera spazio senza cancellare i duplicati
Per capire il funzionamento di Hyperspace bisogna separare due concetti che normalmente Finder nasconde: il file che vediamo e i blocchi nei quali sono memorizzati i suoi dati. APFS consente di creare un clone che inizialmente punta agli stessi dati del file originale. La nuova copia possiede però un’identità propria e può avere metadati differenti.
Apple descrive il cloning APFS come un sistema che permette di creare copie molto rapidamente e senza occupare ulteriore spazio. Dietro c’è una logica copy-on-write: finché i file restano uguali condividono i medesimi dati; quando uno dei due cambia, APFS alloca nuovi blocchi soltanto per le parti modificate.
Supponiamo quindi di avere cinque copie perfettamente identiche di un file da 20 GB. Tradizionalmente potrebbero occupare circa 100 GB. Dopo la conversione sotto forma di cloni, i cinque oggetti continuano a comparire nelle rispettive cartelle, ma gran parte dei dati può essere condivisa. Se successivamente si modifica una delle copie, APFS non altera le altre quattro: separa progressivamente i blocchi coinvolti dalla modifica.
Prima di toccare i file, Hyperspace verifica che siano identici
Per cominciare, Hyperspace deve prima stabilire con elevata affidabilità che due o più contenuti coincidano. La procedura dichiarata dallo sviluppatore è piuttosto prudente.
Il primo controllo riguarda la dimensione: se due file differiscono anche di un solo byte, appartengono immediatamente a gruppi differenti. Per i candidati della stessa dimensione, l’app legge i dati e calcola tre hash crittografici: MD5, SHA-1 e SHA-256.
Su macOS un file può contenere, oltre ai dati principali, anche un flusso separato chiamato resource fork, storicamente usato per conservare informazioni aggiuntive associate al file. Hyperspace controlla anche questa parte: se è presente, calcola separatamente gli hash MD5, SHA-1 e SHA-256 del resource fork, così da evitare di considerare identici due file che hanno lo stesso contenuto principale ma dati accessori differenti.
Solo la corrispondenza di tutti i valori permette all’applicazione di considerare i file identici ai fini del recupero dello spazio.
Cosa accade durante il recupero dello spazio su macOS
Dopo la scansione, Hyperspace raggruppa le copie identiche: una assume il ruolo di “source file“, mentre le altre diventano “target“. Il source non viene modificato; serve come origine dalla quale creare i cloni.
Per ogni target l’app genera un clone APFS del source, quindi riproduce sul nuovo oggetto i metadati appartenenti al target originale. Tra gli elementi preservati rientrano nome, date di creazione e modifica, permessi, proprietà, etichette e commenti Finder, visibilità dell’estensione e resource fork. Solo dopo avere verificato che il nuovo clone contiene gli stessi dati del file originale e ne conserva correttamente i metadati, Hyperspace sostituisce la vecchia copia con quella basata sui blocchi condivisi di APFS.
Una semplice deduplicazione basata sul contenuto rischierebbe di uniformare anche proprietà che devono invece restare diverse. Due PDF identici, ad esempio, possono trovarsi in cartelle differenti, avere date differenti oppure permessi differenti. Hyperspace condivide i dati ma cerca di lasciare indipendente tutto il resto.
Il problema più delicato: un file può cambiare mentre Hyperspace lavora
Scansione e recupero dello spazio, però, non avvengono necessariamente nello stesso istante. Un’applicazione potrebbe modificare un documento dopo che Hyperspace lo ha classificato come duplicato ma prima dell’effettiva sostituzione. Per ridurre questo rischio il programma applica una validazione just-in-time subito prima dell’operazione: se il contenuto o altre proprietà rilevanti non coincidono più con quanto osservato durante la scansione, il file non viene toccato.
Resta però un problema che nessun programma di questo tipo può eliminare completamente. macOS non offre a Hyperspace un modo universale per coordinarsi con ogni applicazione che potrebbe avere un file aperto: se un altro processo stesse scrivendo proprio mentre avviene la sostituzione, si possono creare situazioni anomale. Un programma potrebbe, per esempio, continuare a scrivere sul vecchio oggetto già aperto senza rendersi conto che nel percorso originale è comparso un nuovo clone.
Lo sviluppatore non nasconde questa possibilità e ha inserito varie protezioni: tra queste vi è la possibilità di conservare temporaneamente i dati ridondanti nel Cestino invece di liberarli subito; le operazioni atomiche sono usate per lo scambio degli elementi quando la liberazione immediata dello spazio è disattivata.
Note importanti sul funzionamento del programma
Hyperspace può recuperare spazio soltanto su volumi APFS. Un disco esterno formattato exFAT, FAT o HFS+ può essere leggibile da macOS, ma non offre il meccanismo di cloning richiesto dall’applicazione. Inoltre source e target devono risiedere sullo stesso volume APFS.
Il software richiede macOS 15.0 o successivo, pesa circa 8,9 MB e la scansione gratuita consente di sapere preventivamente quanto spazio potrebbe essere recuperato, mentre il recupero richiede uno degli acquisti in-app previsti dallo sviluppatore.
Le versioni più recenti di Hyperspace supportano anche file conservati tramite servizi cloud come iCloud Drive, OneDrive e Google Drive. Qui entra però in gioco un attore sul quale l’app non ha controllo: il client di sincronizzazione.
Dopo la conversione in clone, i byte del file restano gli stessi dal punto di vista logico: un servizio cloud ben ottimizzato potrebbe accorgersi che il contenuto non è cambiato e non trasferirlo nuovamente. Non esiste però alcuna garanzia universale: il provider potrebbe interpretare la sostituzione dell’oggetto locale come una modifica e risincronizzare i dati.
C’è persino un caso più sottile: dopo avere eseguito Hyperspace su due Mac, una successiva sincronizzazione potrebbe ricreare una copia convenzionale su una delle macchine e annullare parte dello spazio risparmiato in locale. Deduplicazione APFS e deduplicazione lato cloud, insomma, sono due problemi diversi.
Uso intelligente di una funzione che macOS possiede già
La parte più interessante di Hyperspace non è l’invenzione di una nuova tecnica di compressione. L’applicazione sfrutta in modo retroattivo una caratteristica che APFS normalmente applica quando un file viene duplicato.
Finder può creare clone quando la copia nasce; Hyperspace cerca invece copie che esistono già, verifica che abbiano lo stesso contenuto e prova a trasformarle in file che condividono i medesimi dati fisici. Grazie al copy-on-write, anche il comportamento dei file resta quello che ci si aspetta: modificare una copia non modifica le altre.