Para MacOS:
En man tar
podemos mirar --options
sección y allí encontraremos !timestamp
opción, que excluirá la marca de tiempo de nuestro archivo gzip. Uso:
tar --options '!timestamp' -cvzf archive.tgz filename
Producirá la misma suma md5 para los mismos archivos con los mismos nombres
tar czf outfile infiles
es equivalente a
tar cf - infiles | gzip > outfile
La razón por la que los archivos son diferentes es porque gzip
pone su nombre de archivo de entrada y la hora de modificación en el archivo comprimido. Cuando la entrada es una canalización, utiliza una cadena vacía como nombre de archivo y la hora actual como hora de modificación.
Pero también tiene un --no-name
opción, que le dice que no ponga el nombre y la marca de tiempo en el archivo. Entonces, si escribe el comando expandido explícitamente, en lugar de usar el -z
opción a tar
, puede hacer uso de esta opción.
tar cf - testfile | gzip --no-name > a.tar.gz
tar cf - testfile | gzip --no-name > b.tar.gz
Probé esto en OS X 10.6.8 y funciona.