Ogólnie zaobserwowałem:
- Pliki lub narzędzia Linux-y używają bzip2 lub gzip do dystrybucji archiwów
- Pliki Windows-y lub narzędzia używają ZIP do dystrybucji archiwów
- Wiele osób korzysta z 7-Zip do tworzenia i dystrybucji własnych archiwów
Pytania:
- Jakie są zalety i wady tych formatów, z których wszystkie wydają się być formatami otwartymi? Kiedy / dlaczego powinienem wybrać jeden (powiedzmy 7-Zip) zamiast drugiego (powiedzmy ZIP)?
- Dlaczego powyższy trend wydaje się utrzymywać, mimo że wszystkie są formatami przenośnymi? Czy są jakieś szczególne zalety korzystania z określonego formatu archiwum na konkretnej platformie?
Odpowiedzi:
Dostępnych jest wiele różnych formatów i metod kompresji, niektóre nie kompresują się wcale i są przeznaczone do przechowywania wielu plików w jednym archiwum, a inne nowsze eksperymentalne kompresory ( oparte na PAQ ) są zaprojektowane tak, aby kompresować tak agresywnie, jak to możliwe, niezależnie od czasu potrzebnego do wykonania tej operacji.
Musisz ocenić funkcje wymagane przy wyborze metody kompresji, a także wziąć pod uwagę kontekst, w którym zostanie użyta.
Różne funkcje i uwagi obejmują:
Ogólnie rzecz biorąc, ZIP jest najbardziej wszechobecnym formatem, ale rozmiary powyżej 4 GB nie są ogólnie obsługiwane (jeśli w ogóle), wsparcie bezpieczeństwa jest ogólnie uważane za słabe (standardowe hasło może zostać naruszone przez atak zwykłym tekstem, a dalsze szyfrowanie jest generalnie wdrażany jako nieoficjalna pochodna formatu przez komercyjnych dostawców oprogramowania ZIP).
Oprócz tego większość innych popularnych formatów będzie miała jakąś formę wsparcia we wszystkich systemach operacyjnych, instalując więcej oprogramowania.
Mój osobisty wybór to 7-Zip , ponieważ ma świetną i elastyczną kompresję; pomimo tego, że ma osobliwy interfejs użytkownika w systemie Windows. Istnieją dekompresory dla systemów Linux i Mac OS X (chociaż nie są oparte na GUI w standardzie).
źródło
Jedną z rzeczy, które przychodzą mi na myśl, jest (dwuletni) post na blogu Jeffa Atwooda: Kompresja plików w erze wielordzeniowej . W tym artykule stwierdza, że bzip2 przewyższa 7-zip, gdy działa na więcej niż dwóch rdzeniach.
źródło
Na pierwsze pytanie, 7-Zip jest archiwizatorem, który może używać wielu algorytmów do kompresji i dekompresji danych.
Na drugie pytanie upewnij się, że platforma obsługuje narzędzia obsługujące dany format. Na przykład unikałbym używania RAR na Macu. Chociaż można go używać i istnieją bezpłatne narzędzia, które go obsługują, brakuje im znacznie bogatszego interfejsu, który mają narzędzia Windows obsługujące RAR (z mojego doświadczenia).
źródło
Jak wspomnieli inni, wybór konkretnego formatu kompresji zależy w dużym stopniu od zastosowania i zamierzonych odbiorców.
Archiwa .tar.gz i tar.bz2 są idealne do użytku w systemach Linux (i przez rozszerzenie do udostępniania plików użytkownikom Linuksa), ponieważ narzędzia tar, gzip i bzip2 są w dużej mierze wszechobecne na platformie, a format .tar jest pełny obsługa uprawnień Unix i innych właściwości specyficznych dla platformy. Wybór pomiędzy gzip i bzip2 do kompresji archiwum tar jest głównie decyzją o stosunku szybkości do kompresji, przy czym bzip2 dostarcza mniejsze pliki, ale z dużo wolniejszą prędkością kompresji. Wady tych formatów obejmują mniejszą zgodność z systemem Windows i (potencjalną) potrzebę rozpakowania całego archiwum w celu wyodrębnienia jednego pliku.
Archiwa ZIP można wyodrębnić na większości platform przy użyciu rodzimych narzędzi, dlatego jest to idealny wybór do wysłania archiwum do nietechnicznego użytkownika, który nie czułby się komfortowo z instalacją oprogramowania do archiwizacji innych firm, takiego jak 7-Zip. Poziom kompresji nie jest tak dobry jak bardziej zaawansowane algorytmy i nie obsługuje uprawnień uniksowych, ale jest to doskonały format, jeśli chcesz na przykład wysłać archiwum zdjęć z wakacji do babci. ZIP zapewnia również podstawową ochronę hasłem i może szybko wyodrębnić plik z dowolnego miejsca w archiwum.
7-Zip jest dobry, jeśli potrzebujesz najlepszych możliwych współczynników kompresji. Podobnie jak ZIP, nie obsługuje uprawnień do plików Unix ani własności, a także nie jest domyślnie instalowany na większości platform, co sprawia, że jest nieco bardziej pracochłonny w użyciu, ale może być warto w systemie Windows, jeśli ważne jest zwiększenie współczynnika kompresji. W środowisku opartym na wszystkich systemach Linux lepiej byłoby użyć narzędzi kompresji „xz” lub „lzma” wraz z programem tar, które działają dokładnie tak samo jak „gzip” i „bzip2”, ale używają bardziej zaawansowanego algorytmu LZMA, takiego jak 7 -Zamek błyskawiczny.
źródło
Jako przykład używam wymienionych formatów w następujących przypadkach:
Całkowicie unikam RAR i za każdym razem, gdy otrzymuję plik RAR od kogoś, kogo znam, mówię mu, aby przestał używać tego formatu, ponieważ jest on zastrzeżony i że prawdopodobnie używa on nielicencjonowanego oprogramowania (większość osób pobiera wersję próbną WinRAR i nadal używa na zawsze).
PS: uruchamiam Ubuntu (głównie) i Windows (zarówno dual boot, jak i VirtualBox).
źródło
Istnieją co najmniej cztery oddzielne zadania, które często są ze sobą mylone, ponieważ popularne narzędzia je integrują:
Wszechobecność .tar.gz i .tar.bz odpowiada filozofii uniksowych małych narzędzi wykonujących jedno zadanie dobrze, w stosunku do jednego narzędzia, które robi wszystko. Format pliku TAR nie obsługuje kompresji ani szyfrowania, ale może być dalej kompresowany przez dowolny kompresor (w tym jako .tar.zip lub .tar.7z). Zadaniem GZip i BZip2 jest po prostu kompresja strumienia pliku do innego strumienia plików, warstwa kompresji nie musi dbać o to, jak zachować metadane, szyfrowanie lub sumę kontrolną. Z czasem jednak w
tar
programie wprowadzono kilka skrótów do wygodniejszej pracy ze sprężarką.W formacie zip i 7z te osobne zadania są wykonywane przez jeden program w jednym super formacie.
Ponieważ tak się dzieje, kody źródłowe programów są tradycyjnie dystrybuowane jako .tar.gz lub .tar.bz2, ponieważ zachowanie uprawnień do plików, czas modyfikacji itp. Są ważne dla różnych narzędzi używanych do programowania (np. Make).
Oddzielny etap archiwizacji i kompresji działał bardzo dobrze od lat, ma wyraźną zaletę polegającą na swobodnym mieszaniu i dopasowywaniu archiwizacji i kompresji, a jego wadę (2-etapowy proces kompresji) można łatwo obejść, opracowując inteligentniejsze narzędzia ( najnowszy program do kompresji linuksa skompresuje bezpośrednio do .tar.gz lub .tar.bz2, ukrywając etap pośredni).
Nie ma silnego powodu, aby przejść do innych formatów plików, nowsze kompresory nie mają znacznie lepszego współczynnika kompresji, aby uzasadnić złamanie tradycji, a tar może zachować wszystko wystarczająco dobrze.
źródło