Podstawowym narzędziem do archiwizacji danych w systemach Unix oraz
Linux jest program tar (ang. Tape Archiviser). Obecnie
znacznie częściej wykorzytywany jest w celu wykonywania archiwów o rozszerzeniach *.tar, pierwotnie został jednak zaprojektowany dla potrzeb obsługi archiwów na taśmach magnetycznych. W najnowszych implementacjach, zwłaszcza wersja GNU dla Lik zostały wzbogacone o Możliwości tar'a nie są zbyt obszerne w
porównaniu z nowoczesnymi pakietami archiwizującymi (np. amanda),
posiada jednak możliwośc tworzenia kopii przyrostowych, dołączania plików do
archiwum, aktualizacji aktualizacji.
Najważniesze opcje polecenia tar to:
- c, --create -- utwórz archiwum;
- x, --extract, --get -- rozpakuj zawartość archiwum do bieżącego katalogu,
- t, --list -- wypisz zawartość archiwum;
- f, --file target -- nazwa urządzenia lub pliku do którego zostanie zapisane tworzone archiwum. Domyślnie tar próbuje utworzyć archiwum na urządzeniu taśmowym np. /dev/rmt/0m (HP-UX); tar w systemie Linux, kieruje strumień danych na standardowe wyjście.
- v, --verbose -- wyświetla na ekranie informacje na temat procesu tworzenia lub rozpakowywania archiwum.
- C, --directory dir1 dir2 -- przejście do katalogu dir1 przed spakowaniem zawartości katalogu dir2 podanego jako następny argument opcji. Oczywiste jest, że dir2 jest podkatalogiem dir1.
- z, --gzip, --ungzip; Z, --compress, --uncompress -- dostępne tylko w niektórych implementacjach opcje pozwalające natychmiast po utworzeniu archiwum od razu skompresować go dostępnymi w systemie programami gzip i compress (lub zdekompresować przed rozpakowaniem archiwum). Jeśli archiwum zapisywane jest do pliku to zgodnie z przyjętą konwencją, jego rozszerzenie powinno mieć postać *.tar.gz/*.tgz w przypadku kompresji programem gzip i *.tar.Z, gdy użyjemy programu compress.
Przykładowe polecenie tworzące archiwum w pliku tar zawierające kilka podkatalogów z katalogu bieżącego ma następującą postać:
Podczas tworzenia archiwum wyświetlana będzie lista pakowanych plików z ścieżkami względem katalogu bieżącego.
Dzięki opcji C możliwe jest przemieszczanie się po drzewie katalogów i włączanie do archiwum zawartości podkatalogów leżących w różnych miejscach drzewa katalogów np.
Powyższe polecenie umieści w jednym archiwum o nazwie work.tar, zawartość podkatalogów praca i robota, znajdujących się w różnych poddrzewach katalogu /. Możliwe jest używanie również ścieżek względnych, należy jednak pamiętać, że kolejne przejścia odbywają się względem katalogu w którym poprzednio odbywało się przetwarzanie polecenia tar.
Tworzenie archiwum na urządzeniu taśmowym /dev/nst0 (Linux) ma postać:
W liście argumentów polecenia można używać metaznaków ang. wildcards * i ? itd.
Aby bez rozpakowania sprawdzić zawartość archiwum na taśmie należy wydać polecenie:
Analogicznie postępujmy w przypadku archiwum w pliku. Oczywiście aby przejrzeć archiwum na taśmie, należy najpierw spozycjonować głowicę czytnika w miejscu w którym na taśmie rozpoczynają się dane archiwum (można wykorzystać poe mt).
Archiwum *.tar rozpakowujemy do bieżącego katalogu poleceniem:
Dodając opcję z (lub Z do każdego z powyższych poleceń możemy tworzyć, przeglądać i rozpakowywać archiwa skompresowane.
Pewne niedostatki polecenia tar zostały naprawione podczas implementacji inne narzędzia archiwizacji o nazwie cpio. Jego przewagi nad tar to:
- elestyczniejsza archiwizacja dowolnych zbiorów danych; tar nadaje się bardziej do archiwizacji całych poddrzew katalogów.
- lepsze upakowanie danych na taśmie.
- radzi sobie z uszkodzonymi miejscami na taśmie.
- potrafi dzielić archiwa pomiędzy wiele taśm (niektóre wersje tar też to potrafią).
cpio tworzy archiwum na podstawie listy plików przekazywanych do polecenia standardowym strumieniem wejściowym.
Pawel Topa
2003-12-12