Niestety, aby rozpakować jednego członka .tar.gzarchiwum, musisz przetworzyć całe archiwum i niewiele możesz zrobić, aby to naprawić.
To tutaj .zip(i niektóre inne formaty, takie jak .rar) archiwa działają znacznie lepiej, ponieważ zipformat ma centralny katalog wszystkich plików w nim zawartych, z bezpośrednimi przesunięciami wskazującymi na środek zippliku, dzięki czemu członkowie archiwum można szybko wyodrębnić bez przetwarzania całej rzeczy.
Możesz zapytać, dlaczego przetwarzanie .tar.gzjest tak wolne?
.tar.gz(często skracany jako .tgz) to po prostu .tararchiwum skompresowane za pomocą gzipkompresora. gzipto kompresor strumieniowy, który może działać tylko z jednym plikiem. Jeśli chcesz uzyskać dowolną część gzipstrumienia, trzeba rozpakować go jako całość, a to co naprawdę zabija go .tar.gz(i .tar.bz2, .tar.xzi innych podobnych formatów na podstawie .tar).
.tarformat jest w rzeczywistości bardzo, bardzo prosty. Jest to po prostu strumień 512-bajtowych nagłówków plików lub katalogów (nazwa, rozmiar itp.), Po których następuje zawartość pliku lub katalogu (w razie potrzeby uzupełniona do rozmiaru bloku 512 bajtami 0). Kiedy zaobserwujesz całkowicie zerowy blok 512 dla nagłówka, oznacza to koniec .tararchiwizacji.
Niektórzy uważają, że nawet .tarczłonkowie archiwum nie mogą uzyskać szybkiego dostępu, ale nie jest to do końca prawdą. Jeśli .tararchiwum zawiera kilka dużych plików, faktycznie możesz szybko wyszukać następny nagłówek, a zatem możesz znaleźć niezbędnego członka archiwum w kilku poszukiwaniach (ale nadal może wymagać tyle wyszukiwań, ile jest członków archiwum). Jeśli twoje .tararchiwum zawiera wiele małych plików, oznacza to, że szybkie pobieranie członków staje się praktycznie niemożliwe nawet dla nieskompresowanych .tar.