Archiwizacja i kompresja danych
Damian Stelmach
Mam nadzieje, że każdy kto trafił na ten wpis, jest już na tyle ogarnięty informatycznie, że wie czym są archiwa. Dla tych co jednak nie wiedzą to powiem, że archiwum to nic innego jak karton do którego spakowaliśmy garnki, talerze i sztućce, aby łatwiej je przechować lub przenieść w inne miejsce… wróć, to nie artykuł na blaga kulinarnego, tylko tutorial z Linuxa więc jeszcze raz. Archiwum to paczka, która zawiera zbiór katalogów i plików, widoczna dla systemu operacyjnego jako jeden obiekt, jeden plik, tworzony po to aby łatwiej był nam je przechowywać czy przenosić, a także zabezpieczać. Znacie paczki 7zip czy innego Winrar’a? To są właśnie archiwa, do których zapakowano pliki. Archiwizację stosuje się w celu łatwiejszego przechowywania i porządkowania danych. Archiwa są często również bazą kopii zapasowych danych firmowych czy instytucjonalnych, a także za ich pomocą dystrybuowane jest czasami oprogramowanie. Jeśli chcemy np. zainstalować na Linuchu WordPress’a, to możemy to zrobić właśnie za pomocą archiwum. Nie wiem czy pamiętacie szczegóły z poprzedniego odcinka, tam również pojawił się temat archiwizacji. Podczas usuwania usera z systemu można jednocześnie stroszyć kopię jego danych zapisanych w katalogu domowym, takie kopia zapisywana jest na dysku właśnie jako archiwum.
Z archiwizacją jednoznacznie łączy się również pojęcie kompresji, czyli zamiany sposobu zapisu danych na nośnikach w taki sposób, aby zajmowany one mniej miejsca niż zbiór źródłowy. Sposoby kompresji danych w systemie Linux, również w tym wpisie zaprezentuje.
W Ubuntu, jak i w wielu innych dystrybucjach opartych na jądrze Linux występuje kilka narzędzi, programów do zarządzania archiwami, najpopularniejsze to tar
oraz zip
. Dla większości użytkowników ich działanie jest do siebie zbliżone, zasadnicza różnica jest taka, że tar
sam w sobie nie obsługuje kompresji, a zip
już tak. Oczywiście da się archiwum tar
również skompresować, ale do tego wykorzystywane są zewnętrzne narzędzia takie jak gzip
czy bzip
.
Tyle teorii, teraz nieco praktyki. Dzisiaj omówimy sobie narzędzie tar
wraz z jego podstawowymi opcjami ponieważ jest to domyślny program do zarządzania archiwami instalowany na Linux’ach. Zaczniemy od prostego zadania, a mianowicie wykonamy sobie archiwum z katalogu z nazwie dokumenty
:
tar -cf archiwum_dokumenty.tar dokumenty
gdzie: tar
rozpoczyna tworzenie archiwum, c
tworzy archiwum, f
pozwala nadać nazwę z rozszerzeniem: archiwum_dokumenty.tar
, a dokumenty
to katalog z plikami, na bazie którego wykonujemy archiwum. Oczywiście tworzymy archiwum w bieżącej lokalizacji, można również podać nazwę wraz z pełną ścieżką jeśli chcielibyśmy utworzyć archiwum z katalogu, który zapisany jest w innym miejscu.
Jeśli podczas tworzenia archiwum, chcemy zobaczyć jakie pliki są do tego archiwum dodawane, możemy dodać parametr v
, wówczas nasze polecenie będzie wyglądało tak:
tar -cvf archiwum_dokumenty.tar dokumenty
A co jeśli tak zajdzie konieczność udokumentowania tego co do archiwum wrzuciliśmy? Nic trudnego, możemy skorzystać przecież ze znanego już nam przekserowania strumienia. Zakładając, że info o tym co jest w archiwum chcemy zapisać do pliku dok_arch
nasze polecenie będzie wyglądało tak:
tar -cvf archiwum_dokumenty.tar dokumenty > dok_arch
Oczywiście nawet jeśli nie zrobiliśmy dokumentacji tego co jest w archiwum na etapie jego tworzenia, to zawsze możemy do niego zajrzeć korzystając z parametru t
. Wówczas nasze polecenie będzie wyglądało tak:
tar -tf dok.tar
Dodanie kolejnego pliku lub katalogu do archiwum? Prosta sprawa, wystarczy skorzystać z parametru r
, podać nazwę archiwum z rozszerzeniem, a także lokalizację z nazwą pliku. Wówczas nasze polecenie może wyglądać np. tak:
tar -rf dok.tar dokumenty/2020/faktura12_2020.txt
a do naszego archiwum zostanie dodany plik faktura12_2020.txt
Jak już mówiłem tar
sam w sobie nie obsługuje kompresji, można jednak korzystając z tego programu i odpowiednich parametrów wymusić skompresowanie archiwum za pomocą „zewnętrznego” oprogramowania do kompresji, m.in. gzip
. Załóżmy, że chcemy utworzyć skompresowane archiwum z katalogu dokumenty
. Użyć do tego możemy takiego polecenia:
tar -czf dok.tar.gz dokumentygdzie parametr
z
umożliwia skompresowanie archiwum za pomocą oprogramowania gzip
. Ważne, aby nowotworzone archiwum miało rozszerzenie .tar.gz
Jeśli z jakiś powodów nie chcemy kompresować archiwum na etapie jego tworzenie lub też otrzymaliśmy paczkę, którą chcemy dopiero kompresować to łatwo możemy to wykonać stosując polecenie gzip
, z nazwą archiwum, które chcemy skompresować:
gzip dok.tarWówczas automatycznie utworzony zostaje plik z rozszerzaniem
.tar.gz
, a archiwum z samym rozszerzaniem .tar
znika.
Dekompresję, czyli działanie odwrotne do kompresji wykonać możemy stosując polecenie gunzip
wraz z nazwą skompresowanego archiwum:
gunzip dok.tar.gz
Umiemy już archiwa tworzyć i je kompresować, to zobaczmy teraz jak rozpakować archiwum. Do tego użyć możemy parametru x
, a całe polecenie może wyglądać tak:
tar -xf dok.tar
Domyślnie tar
rozpakowuje archiwa do katalogu, w którym archiwum było zapisane. Jeśli chcemy do oczywiście możemy określić inną lokalizację do rozpakowania archiwum, pod warunkiem oczywiście, że taka istnieje. Do tego użyć możemy parametru C
. Takie polecenie np:
tar -xf dok.tar -C /Home/stefanRozpakuje archiwum do katalogu domego usera
stefan
Zamów książki o IT sec z kodem: pasja
Można już zamawiać dwa tomy książek "Wprowadzenie do bezpieczeństwa IT". Mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności! Zamówień można dokonywać tutaj:
Tom 1 Tom 2Pomóż dzieciom
Polska Akcja Humanitarna od wielu lat dożywia dzieci. Prosimy, poświęć teraz dosłownie chwilę i pomóż klikając w oznaczony strzałką zielony brzuszek Pajacyka. Dziękujemy!
Komentarze
Czy macie jakieś pytania, sugestie, uwagi? A może zauważyliście literówkę albo błąd? Dajcie koniecznie znać: kontakt@pasja-informatyki.pl. Dziękujemy za poświęcony czas - to dzięki Wam serwis staje się coraz lepszy!