Jak kompresować i wyodrębniać pliki za pomocą polecenia tar w systemie Linux

Opublikowany: 2022-07-23

Skompresowany nagłówek Tarballa Ubuntu

Polecenie tar w systemie Linux jest często używane do tworzenia plików archiwów .tar.gz lub .tgz, zwanych również "tarballami". To polecenie ma dużą liczbę opcji, ale wystarczy zapamiętać kilka liter, aby szybko tworzyć archiwa ze smołą. Polecenie tar może również wyodrębnić powstałe archiwa.

Polecenie GNU tar dołączone do dystrybucji Linuksa ma zintegrowaną kompresję. Może utworzyć archiwum .tar, a następnie skompresować je za pomocą kompresji gzip lub bzip2 w jednym poleceniu. Dlatego wynikowy plik jest plikiem .tar.gz lub plikiem .tar.bz2.

Aktualizacja, 18.07.22: Przejrzeliśmy ten artykuł pod kątem dokładności i możemy potwierdzić, że nadal działa w najnowszej wersji Ubuntu i innych dystrybucjach Linuksa.

Kompresuj cały katalog lub pojedynczy plik

Użyj następującego polecenia, aby skompresować cały katalog lub pojedynczy plik w systemie Linux. Skompresuje również każdy inny katalog w określonym katalogu - innymi słowy, działa rekurencyjnie.

 tar -czvf nazwa-archiwum.tar.gz /ścieżka/do/katalogu-lub-pliku

Oto, co właściwie oznaczają te przełączniki:

  • -c : Utwórz archiwum.
  • -z: Skompresuj archiwum za pomocą g z ip.
  • -v : Wyświetla postęp w terminalu podczas tworzenia archiwum, znany również jako tryb „verbose”. v jest zawsze opcjonalne w tych poleceniach, ale jest pomocne.
  • -f : Pozwala określić nazwę pliku archiwum.

Załóżmy, że masz katalog o nazwie „rzeczy” w bieżącym katalogu i chcesz go zapisać w pliku o nazwie archive.tar.gz. Uruchomiłbyś następujące polecenie:

 tar -czvf archiwum.tar.gz rzeczy

Albo powiedzmy, że w bieżącym systemie jest katalog /usr/local/something i chcesz go skompresować do pliku o nazwie archive.tar.gz. Uruchomiłbyś następujące polecenie:

 tar -czvf archiwum.tar.gz /usr/local/coś 

Uruchom "tar -czvf" w żądanym folderze, aby spakować i skompresować całą zawartość.

Kompresuj wiele katalogów lub plików jednocześnie

POWIĄZANE: Jak zarządzać plikami z terminala Linux: 11 poleceń, które musisz znać

Chociaż tar jest często używany do kompresji pojedynczego katalogu, można go również użyć do kompresji wielu katalogów, wielu pojedynczych plików lub obu. Wystarczy podać listę plików lub katalogów zamiast jednego. Załóżmy na przykład, że chcesz skompresować katalog /home/ubuntu/Downloads, katalog /usr/local/stuff i plik /home/ubuntu/Documents/notes.txt. Po prostu uruchom następujące polecenie:

 tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

Po prostu wypisz tyle katalogów lub plików, ile chcesz zarchiwizować.

Ubuntu Terminal kompresuje wiele katalogów jednocześnie za pomocą polecenia „tar”.

Wyklucz katalogi i pliki

W niektórych przypadkach możesz chcieć skompresować cały katalog, ale nie zawierać niektórych plików i katalogów. Możesz to zrobić, dołączając przełącznik --exclude dla każdego katalogu lub pliku, który chcesz wykluczyć.

Załóżmy na przykład, że chcesz skompresować katalogi /home/ubuntu, ale nie chcesz kompresować katalogów /home/ubuntu/Downloads i /home/ubuntu/.cache. Oto jak możesz to zrobić:

 tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Pobieranie --exclude=/home/ubuntu/.cache

Przełącznik --exclude jest bardzo potężny. Nie przyjmuje nazw katalogów i plików — w rzeczywistości akceptuje wzorce. Można z tym zrobić o wiele więcej. Na przykład możesz zarchiwizować cały katalog i wykluczyć wszystkie pliki .mp4 za pomocą następującego polecenia:

 tar -czvf archiwum.tar.gz /home/ubuntu --exclude=*.mp4 

Polecenie "tar" można dostroić, aby selektywnie ignorować niektóre pliki.

Zamiast tego użyj kompresji bzip2

Podczas gdy kompresja gzip jest najczęściej używana do tworzenia plików .tar.gz lub .tgz, tar obsługuje również kompresję bzip2. Pozwala to na tworzenie skompresowanych plików bzip2, często nazywanych plikami .tar.bz2, .tar.bz lub .tbz. Aby to zrobić, po prostu zamień -z dla gzip w komendach tutaj na -j dla bzip2.

Gzip jest szybszy, ale generalnie kompresuje się nieco mniej, więc otrzymujesz nieco większy plik. Bzip2 jest wolniejszy, ale kompresuje się nieco bardziej, dzięki czemu otrzymujesz nieco mniejszy plik. Gzip jest również bardziej powszechny, z niektórymi uproszczonymi systemami Linux, które domyślnie obsługują gzip, ale nie obsługują bzip2. Ogólnie rzecz biorąc, gzip i bzip2 to praktycznie to samo i oba będą działać podobnie.

Na przykład zamiast pierwszego przykładu, który podaliśmy do skompresowania katalogu rzeczy, uruchomisz następujące polecenie:

 tar -cjvf archiwum.tar.bz2 rzeczy 

Terminal uruchamia kompresję bzip2 zamiast gzip.

Wyodrębnij archiwum

Gdy masz już archiwum, możesz je rozpakować za pomocą polecenia smoła. Następujące polecenie wyodrębni zawartość archiwum.tar.gz do bieżącego katalogu.

 tar -xzvf archiwum.tar.gz

Jest to to samo, co polecenie tworzenia archiwum, którego użyliśmy powyżej, z wyjątkiem tego, że przełącznik -x zastępuje przełącznik -c . Oznacza to, że chcesz rozpakować archiwum zamiast je tworzyć.

Możesz wyodrębnić zawartość archiwum do określonego katalogu. Możesz to zrobić, dołączając przełącznik -C na końcu polecenia. Na przykład poniższe polecenie wyodrębni zawartość pliku archive.tar.gz do katalogu /tmp.

 tar -xzvf archiwum.tar.gz -C /tmp

Jeśli plik jest plikiem skompresowanym bzip2, zamień „z” w powyższych poleceniach na „j”.

Uruchom "tar" z "-xzvf" zamiast argumentu "-czvf", aby rozpakować pliki z archiwum tar.


Jest to najprostsze możliwe użycie polecenia tar. Polecenie zawiera dużą liczbę dodatkowych opcji, więc nie możemy ich wszystkich tutaj wymienić. Po więcej informacji. uruchom komendę info tar w powłoce, aby wyświetlić stronę ze szczegółowymi informacjami o komendzie tar. Po zakończeniu naciśnij klawisz q , aby zamknąć stronę informacyjną. Możesz także przeczytać podręcznik tar online.

Jeśli używasz graficznego pulpitu Linux, możesz również użyć narzędzia do kompresji plików lub menedżera plików dołączonego do pulpitu, aby utworzyć lub wyodrębnić pliki .tar. W systemie Windows możesz wyodrębniać i tworzyć archiwa .tar za pomocą bezpłatnego narzędzia 7-Zip.

POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów