Una cosa che ho pensato potrebbe influire sul risultato sono i tag quali che stai aggiungendo e come. I colori delle etichette tradizionali (rosso, arancione, ...) sono memorizzati in un sottocampo a 3 bit del campo FinderInfo del record del catalogo HFS + per il file. Le nuove etichette vengono invece memorizzate in un attributo esteso del file.
Sotto il nuovo schema, se Finder imposta il tag, lo inserisce sempre (o loro) nell'attributo esteso di com.apple.metadata:_kMDItemUserTags
. Se alcune altre applicazioni impostano l'indice delle etichette, ad esempio con il comando AppleScript
tell application "Finder" to set label index of someFile to 3
l'indice delle etichette è impostato in FinderInfo. Un valore diverso da zero per FinderInfo causa il comando xattr
per elencarlo come se fosse l'attributo esteso com.apple.FinderInfo
, dove puoi vedere l'indice dell'etichetta come tre dei bit nel decimo byte . L'interazione tra questi due campi è complessa. A volte modificando uno si cancellerà l'altro, a volte no.
md5
potrebbe essere influenzato in modo diverso a seconda di quali metadati, se esistono, sono inclusi nel checksum rispetto a quali metadati sono influenzati dal metodo che utilizzi per impostare l'etichetta.
La buona notizia è che md5
sembra ignorare tutti i metadati. Calcola un checksum solo del fork dei dati. Non include nemmeno il fork delle risorse. (Per il checksum del fork delle risorse, devi esplicitamente richiederlo, come in md5 "Icon^M"/..namedfork/rsrc
, ma il fork delle risorse è la cosa solo che guarda.)