Per MacOS:
In man tar
possiamo vedere --options
sezione e lì troveremo !timestamp
opzione, che escluderà il timestamp dal nostro archivio gzip. Utilizzo:
tar --options '!timestamp' -cvzf archive.tgz filename
Produrrà la stessa somma md5 per gli stessi file con gli stessi nomi
tar czf outfile infiles
è equivalente a
tar cf - infiles | gzip > outfile
Il motivo per cui i file sono diversi è perché gzip
inserisce il nome del file di input e l'ora di modifica nel file compresso. Quando l'input è una pipe, utilizza una stringa vuota come nome file e l'ora corrente come ora di modifica.
Ma ha anche un --no-name
opzione, che gli dice di non inserire il nome e il timestamp nel file. Quindi, se scrivi il comando espanso in modo esplicito, invece di utilizzare il -z
opzione a tar
, puoi utilizzare questa opzione.
tar cf - testfile | gzip --no-name > a.tar.gz
tar cf - testfile | gzip --no-name > b.tar.gz
L'ho testato su OS X 10.6.8 e funziona.