Praca z archiwami TAR w wierszu poleceń systemu Linux
Format tar jest bardzo popularny w środowisku Linux i de facto stanowi standard dla archiwizacji danych. Sam w sobie nie kompresuje plików, ale doskonale współpracuje z narzędziami do kompresji, takimi jak gzip czy bzip2. Z tego względu większość archiwów utworzonych za pomocą tego formatu, które znajdziemy w internecie, będzie miała postać nazwa_archiwum.tar.gz.
Przygotowanie do pracy
Zazwyczaj narzędzie tar jest instalowane domyślnie. Aby się upewnić, czy jest dostępne, wykonaj poniższą komendę instalacji tego archiwizatora:
Dla Debian i Ubuntu:
sudo apt update && sudo apt install tar
Dla CentOS oraz Rocky/Alma Linux:
sudo yum makecache && sudo yum install tar
Tworzenie archiwum tar
Bez kompresji:
tar -cvf archive.tar /file/path
Gdzie:
- -c — tworzy nowe archiwum
- -v — wyświetla szczegóły w terminalu (przydatne, jeśli chcesz zobaczyć, co się dzieje)
- -f — określa nazwę pliku archiwum
Z dodatkową kompresją (na przykład gzip):
tar -czvf archive.tar.gz /file/path
- -z — dodaje kompresję z pomocą gzip.
W większości przypadków warto skorzystać z komendy z dodatkową kompresją, ponieważ pozwala to zaoszczędzić miejsce na dysku oraz skraca czas przesyłania plików na serwer lub z serwera.
Rozpakowywanie archiwum tar
Dla gzip:
tar -xzvf archive.tar.gz
Dla bzip2:
tar -xjvf archive.tar.bz2
Dla archiwum bez kompresji:
tar -xvf archive.tar
Inne przydatne opcje
- -t — przeglądanie zawartości archiwum bez jego rozpakowywania:
tar -tvf archive.tar
Po uruchomieniu wyświetla w konsoli listę plików zawartych w archiwum, bez jego rozpakowywania.
- -u — aktualizuje pliki wewnątrz archiwum:
tar -uf archive.tar /path/to/new_files
Przy aktualizacji pliku w archiwum należy pamiętać o kilku szczegółach:
- Jeśli pliku nowy_plik.txt nie ma jeszcze w archiwum, zostanie on dodany.
- Jeśli w archiwum jest już plik o tej samej nazwie, ale jego zawartość na dysku została zmieniona, plik ten zostanie zastąpiony nową wersją.
Polecenie to można również wykorzystać dla wielu plików jednocześnie, na przykład:
tar -uf archive.tar /path/to/new_files/*.txt
Komenda ta zaktualizuje wszystkie pliki z rozszerzeniem .txt, które są już w archiwum, i doda nowe, jeśli jeszcze nie zostały uwzględnione.