Archiwa
Zalet kompresji plików nie trzeba nikomu przedstawiać. W tym artykule poznasz szczegóły obsługi kompresorów i archiwizatorów pod openSUSE.
Spis treści |
gzip
gzip (GNU zip) jest popularnym programem do kompresji plików. Zaprezentuje jego wydajność na przykładzie pliku .svg:
$ du -b copyleft-flag.svg 2673 copyleft-flag.svg $ gzip --best copyleft-flag.svg $ du -b copyleft-flag.svg.gz 1139 copyleft-flag.svg.gz
Można wybierać stopień kompresji, z zakresu -1 (równoważne z --fast) do -9 (równoważne z --best), domyślnie ustawiony jest -6.
$ gzip --fast copyleft-flag.svg $ du -b copyleft-flag.svg.gz 1211 copyleft-flag.svg.gz
gzip użyty z opcją -c wypisze skompresowane dane na standardowe wyjście, a bez podania argumentu (lub podania -) pobierze dane ze standardowego wejścia, co jest przydatne podczas pisania skryptów. Użyty z opcją -r i katalogiem jako parametr, rekursywnie kompresuje pliki w wskazanym katalogu.
Do dekompresji można użyć polecenia gunzip, albo gzip z opcją -d.
$ ls copyleft-flag.svg.gz $ gunzip copyleft-flag.svg.gz $ ls copyleft-flag.svg
Dokumentacja w pakietach RPM jest kompresowana za pomocą programu gzip. Można ją dekompresować i przeglądać za pomocą poniższych poleceń
$ cat README.gz | gunzip -c
ale można zrobić to za pomocą polecenia zcat, uzyskując identyczny wynik (plik "README.gz" jest oczywiście przykładowy).
$ zcat README.gz
bzip2
bzip2, tak jak gzip jest kompresorem danych, ale osiąga nieco lepszą wydajność kompresji. Niestety, jest to okupione większymi wymaganiami sprzętowymi i dłuższym czasem kompresji/dekompresji. Z tego powodu, projekt OpenBSD odrzucił bzip2 na korzyść gzip.
Zaprezentuję tu małe porównanie na przykładzie pliku "CREDITS" z źródeł jądra 2.6.14.7.
$ du -b CREDITS 9223 CREDITS $ bzip2 -k -9 CREDITS $ gzip -9 CREDITS $ du -b CREDITS.* 35307 CREDITS.bz2 39788 CREDITS.gz
Choć nie zawsze kompresja jest wydajniejsza:
$ du -b copyleft-flag.svg 2673 copyleft-flag.svg $ bzip2 -k -9 copyleft-flag.svg $ gzip -9 copyleft-flag.svg $ du -b copyleft-flag.svg.* 1214 copyleft-flag.svg.bz2 1139 copyleft-flag.svg.gz
Opcja -9 działa tak jak w programie gzip i także domyślnym stopniem jest -6. Znaczącą różnicą jest opcja -k, która pozwala zachować pliki wejściowe podane podczas kompresji lub dekompresji. bzip2 również posiada opcje -c, która działa identycznie jak ta w gzip.
Dekompresować można za pomocą opcji -d lub polecenia bunzip2, które, analogicznie do polecenia gunzip, posiada opcje -c
tar
tar (Tape ARchiwer) jest archiwizatorem, to znaczy, programem do „sklejania” kilku plików w jeden, stworzonym zgodnie z uniksową filozofią „do only one thing”. Często archiwa są kompresowane za pomocą programów gzip lub bzip2.
Archiwa można tworzyć poleceniem:
$ tar -cvf archiwum.tar copyleft-flag.svg copyleft-flag.svg
Opcja -c tworzy nowe archiwum, -v wypisuje nazwy archiwizowanych plików, a -f określa urządzenie/plik z archiwum (domyślnie jest -, czyli standardowe wyjście).
Można podawać jako argumenty dowolną liczbę plików i katalogów, jednak poprzez nieuwagę w poprzednim przypadku nie został zarchiwizowany plik "CREDITS", ale można to naprawić:
$ tar -rvf archiwum.tar CREDITS CREDITS
Opcja -r powoduje dołączenie do istniejącego archiwum plików/katalogów podanych jako argumenty. tar użyty z opcją -r, -f i archiwum jako argumentem wypisze zawartość archiwum:
$ tar -tf archiwum.tar copyleft-flag.svg CREDITS
Opcja -v użyta z opcją -r pozwoli uzyskać informacje o prawach dostępu, liczbie dowiązań twardych, właścicielu, grupie, rozmiarze, czasie modyfikacji i oczywiście nazwy pliku będącego w archiwum. Wyniki będą wyświetlone w takim samym formacie co wyniki polecenia ls -l.
Tak utworzone archiwa nadal zajmują wiele miejsca na dysku twardym, można je skompresować za pomocą metod opisanych wcześniej, ale nie jest to dość wygodne rozwiązanie. Na szczęście, tar posiada opcje -z i -j. Za pomocą pierwszej kompresuje się archiwum programem gzip, a druga używa programu bzip2 do kompresji.
$ tar -czf archiwum.tar.gz copyleft-flag.svg CREDITS $ tar -cjf archiwum.tar.bz2 copyleft-flag.svg CREDITS $ du -b archiwum.tar* 102400 archiwum.tar 36702 archiwum.tar.bz2 41314 archiwum.tar.gz
Do rozpakowywania archiwów służy opcja -x:
$ tar -xvf archiwum.tar copyleft-flag.svg CREDITS
Oczywiście, opcja -v pokazuje dodatkowe informacje, w tym wypadku rozpakowywane pliki.
Skompresowane archiwa można rozpakowywać "step by step, czyli krok po kroku, ale wygodniej jest się posłużyć opcjami -z i -j.
$ tar -zxvf archiwum.tar.gz copyleft-flag.svg CREDITS $ tar -jxvf archiwum.tar.bz2 copyleft-flag.svg CREDITS
Warto zauważyć, że tar nadpisuje istniejące pliki bez wyświetlania ostrzeżeń.
unzip - program do rozpakowywania plików zip
Archiwa .zip mogą być rozpakowane za pomocą programu unzip. Program domyślnie rozpakowuje je do bieżącego katalogu, ale można to zmienić za pomocą opcji -d. Pakiet zawierający program znajduje się on w standardowym repozytorium openSUSE.
Przykład najprostszego użycia:
$ unzip archiwum.zip
Opcja -l służy do wyświtlenia zawartości archiwum. Opcją -t sprawdza się poprawność archiwum:
$ unzip -t backup.zip
Archive: backup.zip
testing: source/podstawowe-repozytoria-yast.txt OK
testing: source/programowanie-bash.txt OK
testing: source/skrypty-powloki-a-programy.txt OK
testing: source/forum_category.txt OK
No errors detected in compressed data of backup.zip.
Jak widać, powyższe archiwum jest poprawne.
unrar - program do rozpakowywania plików rar
Za pomocą programu unrar można rozpakować archiwa .rar (także te zabezpieczone hasłem). Znajduje się on w standardowym repozytorium openSUSE.
Przykład najprostszego użycia:
$ unrar e archiwum.rar
Opcja e rozpakowuje pliki do bieżącego katalogu. Katalog docelowy można zmieniać podając po opcji e poprawną ścieżkę do wymaganej lokalizacji. Za pomocą opcji t można przetestować archiwum. Program automatycznie zapyta o hasło podczas próby rozpakowania zabezpieczonego archiwum.
unace - program do rozpakowywania plików ace
Za pomocą programu unace można rozpakować archiwa .ace. Znajduję się on w standardowym repozytorium openSUSE.
Przykład najprostszego użycia:
$ unace e archiwum.ace
Opcja e rozpakowuje pliki do bieżącego katalogu. Katalog docelowy można zmieniać podając po opcji e poprawną ścieżkę do wymaganej lokalizacji. Za pomocą opcji t można przetestować archiwum. Opcja l wyświetli zawartość archiwum.
Część tego artykułu pierwotnie została napisana na potrzeby konkursu na dokumentację dystrybucji Aurox. Ta wersja została zmieszczona tutaj przez autora.