Malheureusement, afin de déballer un seul membre de .tar.gz
vous devez traiter toute l'archive, et il n'y a pas grand-chose que vous puissiez faire pour le réparer.
C'est là que .zip
(et certains autres formats comme .rar
) fonctionnent beaucoup mieux, car zip
a un répertoire central de tous les fichiers qu'il contient, avec des décalages directs pointant vers le milieu du format zip
afin que les membres de l'archive puissent être rapidement extraits sans avoir à traiter l'ensemble du fichier.
Vous pourriez demander pourquoi le traitement .tar.gz
est si lent ?
.tar.gz
(souvent abrégé en .tgz
) est simplement .tar
archive compressée avec gzip
compresseur. gzip
est un compresseur de flux qui ne peut travailler qu'avec un seul fichier. Si vous voulez obtenir une partie de gzip
vous devez le décompresser dans son ensemble, et c'est ce qui le tue vraiment pour les raisons suivantes .tar.gz
(et pour .tar.bz2
, .tar.xz
et d'autres formats similaires basés sur .tar
).
.tar
est en fait très, très simple. Il s'agit simplement d'un flux d'en-têtes de fichiers ou de répertoires de 512 octets (nom, taille, etc.), chacun d'eux étant suivi du contenu du fichier ou du répertoire (complété par 0 octet si nécessaire). Lorsque vous observez un bloc de 512 octets totalement nul pour un en-tête, cela signifie la fin du fichier ou du répertoire. .tar
archives.
Certaines personnes pensent que même .tar
les membres des archives ne sont pas accessibles rapidement, mais ce n'est pas tout à fait vrai. Si .tar
Si l'archive contient peu de gros fichiers, vous pouvez rapidement chercher dans l'en-tête suivant, et ainsi trouver le membre de l'archive nécessaire en peu de recherches (mais cela peut nécessiter autant de recherches qu'il y a de membres de l'archive). Si votre .tar
contient de nombreux petits fichiers, ce qui signifie que la récupération rapide des membres devient impossible, même pour les fichiers non compressés. .tar
.
0 votes
Je me pose la même question. Le fichier que je cherche est trouvé rapidement et extrait - et ensuite je dois attendre une heure pour que le reste de la réalisation soit traité :o(