Opcje kompresji plików Linux i porównanie

Opcje kompresji plików Linux i porównanie
Zasadniczo kompresja jest użyteczną metodą, która zasadniczo koduje informacje przy użyciu mniejszych danych niż oryginalny. W przypadku Linuksa istnieją różne opcje kompresji, każda z własnymi korzyściami.

Generic Linux Distro oferuje dostęp do garści naprawdę przydatnych i prostych mechanizmów kompresji. Ten artykuł skupi się tylko na nich.

Typy kompresji

Kompresja koduje i reprezentuje informacje przy użyciu mniejszych bitów niż pierwotnie. W przypadku kompresji plików metoda kompresji wykorzystuje własny algorytm i obliczenia matematyczne, aby wygenerować wyjście, które są ogólnie mniejsze niż rozmiar oryginalnego pliku. Ze względu na to, jak działa inna kompresja i losowy charakter plików, przebieg może się znacznie różnić.

Istnieją 2 rodzaje kompresji.

  • Kompresja stratna: Jest to ryzykowny rodzaj kompresji, który nie gwarantuje integralności danych. Zasadniczo po skompresowaniu istnieje ryzyko, że oryginalnego pliku nie można zrekonstruować za pomocą skompresowanego archiwum.
    Solidnym przykładem tego rodzaju kompresji jest dobrze znany format MP3. Kiedy mp3 jest tworzony z oryginalnego pliku audio, jest znacznie mniejszy niż oryginalny plik muzyczny źródłowy. Powoduje to utratę jakości dźwięku.
  • Bezstratna kompresja: Jest to najczęściej używany rodzaj kompresji. Za pomocą „bezstratnej” metody kompresji oryginalnego pliku można odtworzyć z kompresowanego pliku. Metody kompresji, które omówię w tym artykule, to wszystkie bezstronne metody kompresji.

Kompresja Linuksa

Większość metod kompresji jest dostępna w narzędzia smoła. Jeśli chodzi o kompresję „zip”, będziemy używać zamek błyskawiczny narzędzie. Zakładając, że twój system ma już zainstalowane te narzędzia, zacznijmy.

Początkowo potrzebujemy pliku testowego. Uruchom następujące polecenie, aby utworzyć jedno.

$ base64 /dev /urandom | Head -C 20000000> Plik.tekst

Utworzy plik tekstowy o rozmiarze 20 MB.

Teraz utwórzmy 10 kopii pliku. Razem to 200 MB.

Zamek błyskawiczny do kompresji

Zip jest dość powszechny. Do utworzenia pliku pocztowego narzędzie ZIP wymaga następującej struktury poleceń.

$ Zip .zamek błyskawiczny

Aby skompresować wszystkie pliki w katalogu testowym w jednym pliku zip, uruchom to polecenie.

test $ zip.zamek błyskawiczny *

Rozmiar wejściowy wynosił 200 MB. Po kompresji jest teraz 152 MB!

Domyślnie narzędzie ZIP zastosuje kompresję deflate. Jest jednak również w stanie użyć kompresji BZIP2. Co więcej, możesz również tworzyć pliki pocztowe chronionego hasłem! Dowiedz się więcej o ZIP.

Smoła do kompresji w Linux

TAR nie jest metodą kompresji. Zamiast tego jest najczęściej używany do tworzenia archiwów. Może jednak wdrożyć szereg popularnych metod kompresji do archiwum.

Do obchodzenia się z Tar (znaną również jako „Tarball”), jest narzędzie do smoły. Dowiedz się więcej o TAR. Zasadniczo narzędzie TAR używa następującej struktury poleceń.

$ TAR

Aby dodać pliki testowe do jednego archiwum TAR, uruchom następujące polecenie.

$ tar -cvf test.smoła *

Tutaj rozmiar pliku pozostaje taki sam.

GZIP do kompresji na Linux

GNU Zip lub GZIP to kolejna popularna metoda kompresji, która moim zdaniem jest lepsza niż tradycyjna suwak ze względu na lepszą kompresję. Jest to produkt open source stworzony przez Marka Adlera i Jean-Loup Gailly, który pierwotnie miał zastąpić UNIX Kompresja pożytek.

Do zarządzania archiwami GZIP dostępne są 2 narzędzia: TAR i GZIP. Sprawdźmy ich oboje.

Po pierwsze, narzędzie GZIP. Oto jak wygląda struktura polecenia GZIP.

$ gzip

Na przykład następujące polecenie zastąpi test1.TXT z testem1.tekst.Plik skompresowany GZ.

$ gzip -v test1.tekst

Jeśli chcesz skompresować cały katalog za pomocą GZIP, uruchom to polecenie. Tutaj flaga „-R” służy do kompresji „rekurencyjnej”. GZIP przejdzie przez wszystkie foldery i skompresuje poszczególne pliki w każdym z nich.

$ gzip -r

GZIP obsługuje różną wartość wytrzymałości kompresji, zaczynając od 1 (najmniej kompresji, najszybsza) do 9 (najlepsza kompresja, najwolniej).

$ gzip -v -9

Aby uzyskać lepszą kontrolę nad wyjściem i łatwością użytkowania, TAR jest lepszy dla zadania. Uruchom następujące polecenie.

$ tar -cvzf test.smoła.GZ *

Wynik jest podobny do ZIP za pomocą deflate, co daje 152 MB po kompresji.

BZIP2 do kompresji na Linux

BZIP2 to bezpłatne i open source narzędzie, które do kompresji wykorzystuje algorytm Burrows-Wheeler. Po raz pierwszy wprowadzony w 1996 roku, BZIP2 jest mocno używany jako alternatywa dla kompresji GZIP.

Podobnie jak GZIP, istnieją 2 narzędzia do pracy z BZIP2: TAR i BZIP2.

Narzędzie BZIP2 działa podobnie do narzędzia GZIP. Może działać tylko z jednym plikiem na raz. Oto struktura poleceń.

$ BZIP2

Skompresujmy test1.plik txt. Tutaj flaga „-V” jest przeznaczona.

$ BZIP2 -V TEST1.tekst

Podobnie jak GZIP, BZIP2 obsługuje również inny poziom kompresji, zaczynając od 1 (domyślnie, mniejsze zużycie pamięci) do 9 (ekstremalne kompresję, wysokie zużycie pamięci).

$ BZIP2 -V -9

Lepszym sposobem użycia kompresji BZIP2 jest użycie TAR. Użyj następującego polecenia.

$ tar -cvjf test.smoła.BZ2 *

Kompresja jest nieco ulepszona niż poprzednie. Teraz rozmiar pliku zmniejszył się do 151.7 MB.

XZ do kompresji w Linux

To względny nowicjusz w dziedzinie kompresji. Po raz pierwszy wydany w 2009 roku od tego czasu odnotował stały wzrost użytkowania.

Narzędzie kompresyjne XZ wykorzystuje algorytm LZMA2, który jest znany z większego współczynnika kompresji w porównaniu z GZIP i BZIP2, co czyni go doskonałym wyborem, gdy chcesz zaoszczędzić maksymalną ilość miejsca na dysku. Daje to jednak koszt wyższych wymagań pamięci i konsumpcji czasu.

Plik utworzony przez narzędzie kompresyjne XZ ma rozszerzenie .xz. Aby skompresować pojedynczy plik, możesz bezpośrednio wywołać narzędzie XZ.

$ xz

Na przykład uruchom następujące polecenie, aby skompresować test1.plik txt.

$ xz -v test1.tekst

Podobnie jak inne wymienione metody kompresji, XZ obsługuje również różne zakres wytrzymałości kompresji, zaczynając od 1 (najniższa kompresja, najszybsza) do 9 (najlepsza kompresja, najwolniej). Jeśli nie masz szacunku na czas i chcesz po prostu zaoszczędzić miejsce, wybierz się na skrajność.

$ xz -v -9

Aby utworzyć skompresowany plik XZ ze wszystkich plików testowych, uruchom to polecenie.

$ tar -cvjf test.smoła.xz *

Tutaj rozmiar pliku wyjściowego wynosi 153.7 MB.

Wyodrębnienie skompresowanych archiwów

Wyodrębnienie stworzonych przez nas archiwów jest łatwiejsze niż ich tworzenie. Aby wyodrębnić plik zip, użyj następującej struktury polecenia.

$ Unzip .Zip -d

Aby wyodrębnić archiwum ZIP, które stworzyliśmy, uruchom to polecenie. To wyodrębni całą zawartość w tym samym katalogu.

$ Unzip Test.zamek błyskawiczny

Do wyodrębnienia smoły, smoła.GZ, Tar.BZ2 i TAR.archiwa XZ, musimy użyć smoła narzędzie. Do wyodrębnienia wszystkie z nich ma zastosowanie następujące polecenie TAR.

$ tar -xvf

Na przykład wyodrębnijmy wszystkie pliki ze sprężonego archiwum BZ2.

$ TAR -xvf Test.smoła.BZ2

Do dekompresji GZIP (nie smoła.GZ) plik, uruchom to polecenie.

$ gzip -d

Podobnie następujące polecenie zdekompresuje archiwum Bzip2.

$ BZIP2 -D

Ta sama struktura poleceń ma zastosowanie do archiwum XZ.

$ xz -d

Końcowe przemyślenia

Mam nadzieję, że teraz masz wystarczającą wiedzę, aby poradzić sobie z zadaniami kompresji w różnych okolicznościach. W zależności od konkretnego wymogu wszystkie metody kompresji oferują bardzo atrakcyjne funkcje.

Jedną ważną rzeczą, na którą należy zwrócić uwagę, jest to, że wynik kompresji nie będzie taki sam przez cały czas. Przy różnych danych wejściowych danych wyjście będzie inne. Na przykład w niektórych przypadkach XZ może zaoferować szalony wynik kompresji, podczas gdy w tym przykładzie nie. To samo dotyczy innych metod.

Aby dowiedzieć się bardziej szczegółowo o tych narzędziach, sprawdź ich stronę odpowiednią.

$ MAN ZIP