Próbowałem użyć większości formatów (gzip itp.), Aby wyodrębnić plik zip tar
, a kiedy byłem na tyle sfrustrowany Google, nie znalazłem sposobu, aby wyodrębnić plik zip tar
i tylko zalecenia użycia zip
lub unzip
. W rzeczywistości mój system Linux nie ma nawet zip
narzędzia, ale tylko unzip
(pozostawiając mi zastanawianie się, dlaczego jest to główna zalecana opcja). Oczywiście unzip
zadziałało, rozwiązując mój problem, ale dlaczego nie można tar
wyodrębnić plików zip? Być może powinienem zamiast tego zapytać, jaka jest różnica między zipem a obsługiwanymi metodami kompresji tar
?
28
bsdtar
można wyodrębnić.zip
archiwa: Pzip
domyślnie, ponieważ licencjonowanie nie jest zgodne z GPLOdpowiedzi:
Filozofią UNIX jest posiadanie małych narzędzi. Jedno narzędzie robi dokładnie jedną rzecz, ale to szczególnie dobrze.
tar
Narzędzie jest właśnie łączenie kilku plików w jednym pliku bez kompresji.gzip
Narzędzie jest właśnie sprężanie pojedynczy plik.Jeśli chcesz mieć oba, po prostu połącz oba narzędzia, tworząc
.tar.gz
plik.zip
Narzędzie to zupełnie inna sprawa. Pobiera kilka plików i łączy je w jeden skompresowany plik. Z zupełnie innymi algorytmami.Jeśli chcesz, aby rządziły nimi wszystkie narzędzia, użyj wszystkich
atool
. Będzie obsługiwał całą masę różnych formatów po prostu przez wykrycie formatu i wywołanie odpowiedniego narzędzia.źródło
gzip
algorytm kompresji jest taki sam, jak używany przezzip
. Różnica polega na tym, żegzip
ma na celu kompresowanie dowolnego strumienia bajtów, w tym.tar
pliku, podczas gdyzip
, wyprowadzony i zainspirowany przez PKZIP, kompresuje i archiwizuje w jednym kroku (iw tej kolejności).Krótko mówiąc: narzędzie tar GNU nie przepływa przez zip / rozpakuj, ponieważ nikogo to nie obchodzi.
Długa historia, oryginalny rozmiar:
tar
początkowo nie był przeznaczony do rozpakowywania i kompresowania plików, ale do archiwizowania kilku plików w jednym dużym pliku. Ponieważ ludzie nie tylko chcieli zarchiwizować swoje pliki, ale także je skompresować, więc po prostutar
przesyłają dane wyjściowe przez dowolny kompresor, który akceptuje wejście strumienia danych i upuszcza wyniki do pliku. Zysk!Teraz, aby takie zadanie było jak najbardziej bezbolesne,
tar
postanowiłem wewnętrznie potokować pliki generowane do narzędzi do kompresji, takich jak gzip, lzma itp., Które były uruchamiane przez specjalne flagi dla każdego formatu podczas działaniatar
. Dlatego, gdy próbujesz wyodrębnić uszkodzony pliktar
, wyświetla się podstawowy błąd narzędzia zamiasttar
:Tak więc nie jest to, że
tar
nie rozpakowuje plików zip, tylkotar
nie ma możliwości przepuszczenia go przez właściwe narzędzie, ponieważ nikt tak naprawdę nie zadał sobie trudu, aby go zaimplementować, a zip już spełnia funkcję archiwizacji plików pliku tar format ma mniejszy powód, aby tar go obsługiwał.Teraz istnieją narzędzia typu „wszystko w jednym”, które kompresują / dekompresują wszystko, co na nich rzucisz, ponownie, musisz mieć odpowiednie narzędzia, aby w pełni je obsługiwać. Jeśli ich nie masz, narzędzie zawiedzie.
źródło
afio
).file-roller
...tar
Plik jest formatem pliku w sobie zaprojektowany dla archiwów taśmowych. Ten format można następnie skompresować przy użyciu (na przykład)gzip
lubbzip2
formatów kompresji. Po wyodrębnieniu skompresowanego pliku tar skutecznie go rozpakuj, a następnie wyodrębnij oryginalne pliki z nieskompresowanegotar
pliku.Po rozpakowaniu
zip
pliku nie matar
w nim żadnego pliku, tylko wszystkie oryginalne pliki. Dlatego nie ma powodu,tar
aby w ogóle brać udział w tym procesie.Możesz także kompresować pliki za pomocą
gzip
lubbzip2
samodzielnie, tak jak możesz tworzyćzip
pliki (beztar
udziału). Po rozpakowaniu tych plików używaszgunzip
lubbunzip2
nietar
.źródło
Ponieważ odpowiedź „Niektóre rzeczy po prostu są i powinniśmy je zaakceptować” również nie pasuje do mnie, po prostu trochę kopałam (zawsze dobrze jest nauczyć się czegoś nowego, prawda?).
Wygląda więc na to, że problem polega na tym, dokąd poszły narzędzia i jaki był ich cel.
Zamiast sparafrazować to, co znalazłem i sprawić, że wody będą niepotrzebnie mętne (zaciemnianie mnie wkurza), spójrz na ten artykuł: http://www.differencebetween.net/technology/difference-between-zip-and-gzip/
Przypuszczam, że tar mógł mieć wbudowaną obsługę zip, ale metodologie są zasadniczo różne. A może zastanawiali się, dlaczego ktoś miałby używać tego narzędzia do archiwizacji do zarządzania plikami z innego narzędzia do archiwizacji i kompresji (lub może istniał jakiś argument między dwoma oryginalnymi programami kodującymi i złożono polecenie ograniczenia dostępu, które uniemożliwiało zamkowi przekraczanie granicy aplikacji ... tak, żartuję).
źródło