Malheureusement, pour déballer un seul membre de l' .tar.gzarchive, vous devez traiter l'archive entière, et vous ne pouvez pas faire grand-chose pour la réparer.
C'est là que .zip(et certains autres formats comme .rar) les archives fonctionnent beaucoup mieux, car le zipformat a un répertoire central de tous les fichiers qu'il contient avec des décalages directs pointant vers le milieu du zipfichier, de sorte que les membres de l'archive peuvent être rapidement extraits sans traiter le tout.
Vous pourriez vous demander pourquoi le traitement .tar.gzest si lent?
.tar.gz(souvent abrégé en .tgz) est simplement .tararchivé compressé avec gzipcompresseur. gzipest un compresseur de streaming qui ne peut fonctionner qu'avec un seul fichier. Si vous voulez obtenir une partie du gzipflux, vous devez le décompresser dans son ensemble, et c'est ce qui le tue vraiment .tar.gz(et pour .tar.bz2, .tar.xzet d'autres formats similaires basés sur .tar).
.tarle format est en fait très, très simple. Il s'agit simplement d'un flux d'en-têtes de fichier ou de répertoire de 512 octets (nom, taille, etc.), chacun suivi du contenu du fichier ou du répertoire (complété à une taille de bloc de 512 avec 0 octet si nécessaire). Lorsque vous observez un bloc 512 totalement nul pour un en-tête, cela signifie la fin de l' .tararchive.
Certaines personnes pensent que même .tarles membres des archives ne sont pas accessibles rapidement, mais ce n'est pas tout à fait vrai. Si l' .tararchive contient peu de gros fichiers, vous pouvez en fait rechercher rapidement dans l'en-tête suivant, et ainsi vous pouvez trouver le membre d'archive nécessaire en quelques recherches (mais il pourrait toujours nécessiter autant de recherches qu'il y a de membres d'archive). Si votre .tararchive contient de nombreux fichiers minuscules, cela signifie que la récupération rapide des membres devient effectivement impossible même pour les fichiers non compressés .tar.