Ich habe hier ein paar 7z-Archive mit jeweils 2k oder mehr Dateien, welche wie folgt erstellt wurden
7z a -mx=9 archiv.7z *(der -mx-Faktor spielt für das weitere keine Rolle).
Den Inhalt eines Archivs liste ich mit
7z l archiv.7zund pipe den Output entweder durch einen Pager oder durch grep.
Wenn ich nun einzelne oder mehrere Dateien aus diesem Archiv extrahieren will, via
7z x archiv.7z datei_1 datei_2 ... datei_n, dauert das verdammt lange, da das Programm bei der ersten includierten Datei beginnt und für jede nicht gewünschte Datei ein "Skipping file $name" ausgibt.
Wäre es nicht logischer, im Header eine Tabelle anzulegen, bei welchem Offset welche Datei beginnt und wie groß diese ist, so dass man direkt an die gewünschte(n) Stelle(n) springen und dort mit der Arbeit beginnen kann?
Die Archive sind jeweils nicht solid, nicht gescrambled und nicht mit einem Passwort geschützt und mit den *nix-Versionen von 7zip erstellt - glaube aber, dass es hier keinen Unterschied zur Windows-Version gibt.
Ist das nun ein Design-Flaw, technisch nicht besser machbar, ein Bug oder was?