Für MacOS:
In man tar
wir können uns --options
ansehen Abschnitt und dort finden wir !timestamp
Option, die den Zeitstempel aus unserem gzip-Archiv ausschließt. Verwendung:
tar --options '!timestamp' -cvzf archive.tgz filename
Es wird dieselbe md5-Summe für dieselben Dateien mit denselben Namen erzeugen
tar czf outfile infiles
entspricht
tar cf - infiles | gzip > outfile
Der Grund für die unterschiedlichen Dateien ist, dass gzip
fügt seinen Eingabedateinamen und seine Änderungszeit in die komprimierte Datei ein. Wenn die Eingabe eine Pipe ist, verwendet sie einen leeren String als Dateinamen und die aktuelle Zeit als Änderungszeit.
Aber es hat auch einen --no-name
Option, die es anweist, den Namen und den Zeitstempel nicht in die Datei einzufügen. Wenn Sie also den erweiterten Befehl explizit schreiben, anstatt den -z
zu verwenden Option auf tar
, können Sie von dieser Möglichkeit Gebrauch machen.
tar cf - testfile | gzip --no-name > a.tar.gz
tar cf - testfile | gzip --no-name > b.tar.gz
Ich habe dies unter OS X 10.6.8 getestet und es funktioniert.