Was macht ein Tar-Archiv suchbar?

674
Peltier

Es scheint, dass ein tar-Archiv, das gesucht werden kann, einen großen Unterschied ausmachen kann, wenn nur wenige Dateien aufgelistet oder extrahiert werden. Leider gibt es auf der Manpage kaum Informationen. Es scheint, dass komprimierte Archive nicht gesucht werden können [1], aber diese Post liefert keine Beweise. Gibt es eine zuverlässigere Informationsquelle, um sich über dieses Problem zu informieren?

[1] https://serverfault.com/questions/59795/is-there-a-smarter-tar-or-cpio-out-zum-dieser -für- effizienter -retrieving-a- file- store

1
Was ist falsch an dieser Antwort (https://serverfault.com/a/546691/251339)? DavidPostill vor 6 Jahren 1
@ DavidPostill: Mit dieser Antwort stimmt nichts, es ist nur eine Antwort auf eine andere Frage. Peltier vor 6 Jahren 0
"Ja wirklich?" "GNU tar erstellt also standardmäßig" durchsuchbare "Archive." und "Komprimierte Archive sind nicht" suchbar ", da aktuelles (1.26) GNU tar die Komprimierung auf ein externes Programm verlagert" Ihre Frage nicht beantwortet? DavidPostill vor 6 Jahren 0
Das war nicht die ursprüngliche Frage und liefert keine Belege dafür. Ich stimme zu, dass es ein guter Anfang ist. Peltier vor 6 Jahren 0
Der Beleg dafür ist der Quellcode. DavidPostill vor 6 Jahren 0
Ich hoffte auf eine bessere Erklärung als "den Quellcode lesen". Aber schließe meine Frage ab, ob du das willst. Peltier vor 6 Jahren 0
Ich werde es nicht schließen. Jemand anderes kann eine akzeptable Antwort für Sie haben DavidPostill vor 6 Jahren 0
@ DavidPostill: danke, ich schätze es. Peltier vor 6 Jahren 0

1 Antwort auf die Frage

1
BillThor

Der Dateiheader für jede Datei enthält ihre Größe im Archiv. Dadurch kann der Dateiinhalt übersprungen werden, wenn er nicht benötigt wird. Tar sucht nur nach dem nächsten Header, der auf den Dateiinhalt folgt. Es gibt eine Dokumentation zum Header-Format.

Komprimierte TAR-Dateien sind genau das. Sie können ein unkomprimiertes und komprimiertes TAR-Dateiformat frei wechseln, indem Sie das entsprechende Komprimierungsprogramm (häufig gunzip) oder das Komprimierungsprogramm (gzip) verwenden. Bei einigen Tar-Programmen ist dies die einzige Option. Die tar-Datei selbst bleibt auch dann suchbar, wenn sie komprimiert ist.

Was nicht gesucht werden kann, ist das komprimierte Format. Die Komprimierung funktioniert, indem eine relativ kleine Anzahl von Bytes gefunden wird, um die komprimierten Daten darzustellen. Datenblöcke mit relativ wenigen Byte-Werten oder wiederholten Byte-Zeichenfolgen werden gut komprimiert. Datenblöcke mit vielen verschiedenen Byte-Werten und wenigen wiederholten Byte-Stichen werden, wenn überhaupt, nicht gut komprimiert. Bei einigen Daten kann die Komprimierung tatsächlich die Dateigröße erhöhen. Das Kompressionsverhältnis für Blöcke innerhalb der Datei variiert. Die Abweichung kann für eine TAR-Datei extrem sein, die aus sehr komprimierbaren Dateien und relativ nicht komprimierbaren Dateien bestehen kann.

Es gibt keinen Mechanismus innerhalb der komprimierten Daten, um eine Position in den unkomprimierten Daten zu suchen. Während einige Komprimierungsprogramme die Suche nach einer einzelnen Datei mit einem komprimierten Archiv erlauben, kann die komprimierte Archivdatei nur auf die tar-Datei zugreifen. Tar-Dateien werden mit solchen Tools selten komprimiert, obwohl komprimierte oder unkomprimierte Tar-Dateien beim Archivieren von Dateisätzen enthalten sein können.