Tar to absolutny klasyk w świecie Linuksa, jeśli chodzi o archiwizację danych. Ten program jest wykorzystywany praktycznie wszędzie tam, gdzie trzeba stworzyć archiwum z wielu plików czy katalogów, a jednocześnie zachować całą strukturę katalogów, prawa dostępu czy właścicieli plików. Moim zdaniem to jedno z bardziej uniwersalnych narzędzi, bo pozwala nie tylko tworzyć archiwa (słynne .tar), ale też je rozpakowywać i manipulować zawartością. Bardzo często spotyka się rozszerzenia typu .tar.gz albo .tar.bz2 – to są po prostu archiwa stworzone za pomocą tar, a następnie skompresowane dodatkowymi narzędziami, na przykład gzip albo bzip2. Dobre praktyki branżowe sugerują właśnie takie podejście: najpierw archiwizacja (tar), później kompresja (gzip, bzip2, xz). Narzędzia typu tar są wykorzystywane w backupach systemowych, przesyłaniu dużych pakietów plików, a nawet przy wdrażaniu aplikacji w środowiskach produkcyjnych. Tar obsługuje różne tryby – można na przykład dodać nowe pliki do istniejącego archiwum, wylistować zawartość czy wyodrębnić tylko wybrane pliki. Mam wrażenie, że każdy administrator przynajmniej raz w życiu musiał stworzyć backup systemu czy katalogu właśnie za pomocą tar. Ciekawe jest to, że chociaż sama kompresja nie jest jego główną funkcją (od tego są inne narzędzia), to przez popularność formatu .tar.gz często ludzie mylą tar z kompresorami. W praktyce warto znać opcje typu -c (create), -x (extract), -t (list), bo pojawiają się niemal w każdym skrypcie backupowym i przy codziennej pracy.
Wśród narzędzi dostępnych w systemie Linux istnieje pewne zamieszanie pomiędzy pojęciem archiwizacji a kompresji, co prowadzi do błędnych wyborów w praktyce administracyjnej. Compress oraz lzma to narzędzia stricte do kompresji – ich zadaniem jest zmniejszenie rozmiaru pojedynczego pliku, bez zachowywania struktury katalogów, uprawnień czy właścicieli. Compress to starszy program, rzadko już używany, głównie z powodu słabej wydajności i gorszego algorytmu względem nowszych rozwiązań. Lzma, choć wydajniejszy, również skupia się wyłącznie na samej kompresji danych i nie daje możliwości tworzenia wieloplikiowych archiwów. Typowym błędem jest więc mylenie narzędzi do kompresji z tymi, które rzeczywiście archiwizują, czyli pozwalają zachować całą strukturę katalogową oraz metadane. Kolejna opcja, free, to zupełnie inna bajka, bo służy do monitorowania wykorzystania pamięci RAM w systemie. Nieraz spotkałem się z sytuacją, gdzie ktoś słyszał o popularnych poleceniach Linuksa i zakładał, że praktycznie każde z nich może być użyte do zarządzania plikami, ale niestety to pułapka myślenia. Dobry administrator powinien rozróżniać: archiwizacja (czyli zbieranie wielu plików i katalogów do jednego archiwum z zachowaniem całościowej struktury, uprawnień i właścicieli) to domena narzędzi jak tar czy cpio. Kompresja to osobny etap – do tego są właśnie lzma, gzip, bzip2. Często stosuje się oba narzędzia razem, stąd popularne rozszerzenia tar.gz czy tar.xz, ale fundamentalnie to inne operacje. W praktyce szeroko przyjętym standardem – i dobrą praktyką – jest najpierw archiwizacja za pomocą narzędzia takiego jak tar, a dopiero potem kompresja pliku archiwum. Warto mieć świadomość tych różnic, bo błędne podejście może prowadzić do utraty metadanych lub braku możliwości łatwego odtworzenia struktury katalogów po rozpakowaniu.