GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum unterscheiden sich die md5-Hashes zweier Tarballs derselben Datei?

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.


Linux
  1. Sind tar.gz und tgz dasselbe?

  2. Extrahieren Sie tar den tar.bz2-Dateifehler

  3. Wie gzipe ich mehrere Dateien in eine gz-Datei?

  4. Warum scheinen Hardlinks denselben Platz einzunehmen wie die Originale?

  5. Befinden sich zwei Unterverzeichnisse mit demselben Stammverzeichnis garantiert im selben gemounteten Dateisystem?

So verwenden Sie den Tar-Befehl unter Linux

Lösung:stdin:nicht im gzip-Format

Linux – Dekomprimieren und Entarchivieren der .tar.gz-Datei mit Cat, Tar und Gzip auf einer Befehlszeile?

In dieselbe Datei wie die vom Befehl verarbeitete Quelldatei umleiten?

Wie verwende ich den Gzip-Befehl unter Linux?

Wie kann ich zwei Abschnitte derselben Datei unterscheiden?