Perché alcuni file potrebbero non avere fork di risorse? Questo influisce sull'utilità "tar"?

3

Ho tartrato e re-tartrato la stessa directory. 2.560 byte di metadati sono in qualche modo persi in quel semplice processo:

/tmp$ tar xf workArea.tar
/tmp$ tar cf workArea_copy.tar WorkArea
/tmp$ ls -l *tar
-rw-r--r-- 1 jdoe wheel 2068480 Mar 19 22:54 workArea.tar
-rw-r--r-- 1 jdoe wheel 2065920 Mar 19 23:27 workArea_copy.tar
/tmp$

Come possono esserci perdite di dati ???

Ma poi, ho un-tarred / re-tarred workArea_copy.tar , e c'era nessuna perdita di dati :

/tmp$ tar xf workArea_copy.tar
/tmp$ tar cf copy_copy.tar WorkArea
/tmp$ ls -l *tar
-rw-r--r-- 1 jdoe wheel 2065920 Mar 19 23:38 copy_copy.tar
-rw-r--r-- 1 jdoe wheel 2065920 Mar 19 23:27 workArea_copy.tar
/tmp$

Ho notato nell'output tar di quando ho rimosso il workArea.tar originale che alcuni file non avevano fork di risorse:

/tmp$ tar xfv workArea.tar
x WorkArea/
x WorkArea/kjDesc.txt // <-- where is resource fork?
x WorkArea/._engGrammar.doc
x WorkArea/engGrammar.doc
x WorkArea/._gingers.txt
x WorkArea/gingers.txt
x WorkArea/._intro.docx
x WorkArea/intro.docx
x WorkArea/._myAntenna.doc
x WorkArea/myAntenna.doc
x WorkArea/notes.txt // <-- where is resource fork?
x WorkArea/._notesKj.txt
x WorkArea/notesKj.txt
x WorkArea/._queen.xlsx
x WorkArea/queen.xlsx
x WorkArea/trans.txt // <-- where is resource fork?
x WorkArea/._url.txt
x WorkArea/url.txt
/tmp$

Tuttavia, nel prolisso tar di output posso vedere che il problema di fork delle risorse mancante esiste in entrambi untarring workArea.tar e workArea_copy.tar . L'output dettagliato è esattamente lo stesso.

Tutti i file in questo file tar sono stati creati sul mio MacBook. Nulla è stato importato da altri file system.

  1. Sono sicuro che 2.560 byte sono metadati. Ma quali metadati? workArea.tar e workArea_copy.tar hanno entrambi gli stessi metadati mancanti, ancora hanno dimensioni differenti. Non capisco.
  2. Se è così, in che modo alcuni file potrebbero addirittura finire con i fork delle risorse mancanti in primo luogo?

Grazie.

    
posta riverflows 20.03.2017 - 05:25
fonte

1 risposta

2

Forche risorse fanno parte dei file di Mac OS che sono stati utilizzati principalmente su Mac OS "Classic" (pre Mac OS X, EG Mac OS 6 - Mac OS 9) Nei precedenti Mac OS e nei file HFS File System (e HFS +) c'erano due "fork", il fork "data" e la "risorsa" forchetta. Il data fork è ciò che hanno tutti i file oggi; il resource fork era una struttura dati proprietaria di Apple progettata per l'archiviazione di immagini, icone, finestre di dialogo, codice e altro in un formato di file strutturato.

Non sono "metadati", contengono codice del programma reale. Ecco uno screenshot del vecchio programma ResEdit che illustrava come venivano modificati i fork delle risorse

Unix, Linux e Windows mancano di una chiara struttura dati analoga come il Mac Resource Fork. In parte a causa di questo problema di compatibilità, Resource Forks non è più utilizzato (sono in gran parte sostituiti con "Bundles")

Per questo motivo, gli strumenti BSD / * nix come tar non (di default) gestiscono il fork delle risorse. Pertanto, quando esegui tar cf , archivia solo il fork dei dati

Si noti che in alcune versioni di OS X, l'utility /usr/bin/tar integrata preserverà i fork delle risorse, ma non posso confermarlo per tutte le versioni di Mac OS X. Se si desidera conservare i fork delle risorse, esaminare ditto o crea un'immagine disco HFS + ( dmg ) file

Informazioni utili, ma non aggiornate: link

    
risposta data 23.03.2017 - 21:38
fonte

Leggi altre domande sui tag