Una cosa a cui ho pensato che potrebbe influenzare il risultato è quali tag 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 archiviate in un attributo esteso del file.
Con il nuovo schema, se Finder imposta il tag, lo inserisce sempre (o loro) nell'attributo com.apple.metadata:_kMDItemUserTags
esteso. Se un'altra applicazione imposta l'indice dell'etichetta, ad esempio con il comando AppleScript
tell application "Finder" to set label index of someFile to 3
l'indice dell'etichetta è impostato in FinderInfo. Un valore diverso da zero per FinderInfo fa sì che il xattr
comando lo elenchi come se fosse l'attributo esteso com.apple.FinderInfo
, dove è possibile vedere l'indice dell'etichetta come tre dei bit nel decimo byte. L'interazione tra questi due campi è complessa. A volte modificando l'uno si cancella l'altro, a volte no.
md5
potrebbe essere influenzato in modo diverso a seconda dei metadati, se presenti, inclusi nel checksum rispetto ai metadati interessati dal metodo utilizzato per impostare l'etichetta.
La buona notizia è che md5
sembra ignorare tutti i metadati. Calcola un checksum del solo fork dei dati. Non incorpora nemmeno il fork delle risorse. (Per eseguire il checksum del fork delle risorse, è necessario richiederlo esplicitamente, come in md5 "Icon^M"/..namedfork/rsrc
, ma poi il fork delle risorse è l' unica cosa che guarda.)