Jak wyodrębnić pliki z pliku .tar.gz lub .tar.bz2 w systemie Linux

  • Dave McKay

    @TheGurkha

  • 5 kwietnia 2019 r., 8:00 czasu wschodniego
Fatmawati Achmad Zaenuri / .com

Pliki tar są archiwami skompresowanymi. Często napotykasz je podczas korzystania z dystrybucji Linuksa, takiej jak Ubuntu, a nawet podczas korzystania z terminala w systemie macOS. Oto jak wyodrębnić – lub rozpakować – zawartość pliku tar, znanego również jako archiwum tar.

Co oznaczają .tar.gz i .tar.bz2?

Pliki, które mają rozszerzenie .tar.gz lub .tar.bz2 to skompresowane pliki archiwalne. Plik z rozszerzeniem .tar jest nieskompresowany, ale będzie to bardzo rzadkie.

.tar część rozszerzenie pliku oznacza archiwum taśmowe i jest powodem, dla którego oba te typy plików nazywane są plikami tar. Pliki tar pochodzą z 1979 roku, kiedy utworzono polecenie tar, aby umożliwić administratorom systemu archiwizowanie plików na taśmie. Czterdzieści lat później nadal używamy polecenia tar do wypakowywania plików tar na nasze dyski twarde. Ktoś gdzieś prawdopodobnie nadal używa tar z taśmą.

Reklama

.gz lub Sufiks rozszerzenia .bz2 wskazuje, że archiwum zostało skompresowane przy użyciu gzip lub bzip2 algorytm kompresji. Polecenie tar będzie dobrze działać z obydwoma typami plików, więc nie ma znaczenia, która metoda kompresji została użyta – i powinna być dostępna wszędzie, gdzie masz powłokę Bash. Wystarczy użyć odpowiednich tar opcji wiersza poleceń.

Wyodrębnianie plików z plików Tar

Załóżmy, że pobrałeś dwa pliki nut. Jeden plik nosi nazwę ukulele_songs.tar.gz, a drugi guitar_songs.tar.bz2. Te pliki znajdują się w katalogu Pobrane.

Wyodrębnijmy utwory ukulele:

tar -xvzf ukulele_songs.tar.gz 

Po rozpakowaniu plików są one wymienione w okno terminala.

Opcje wiersza poleceń, których użyliśmy to:

  • -x: Wypakuj, pobierz pliki z pliku tar.
  • – v: Verbose, lista plików w trakcie ich rozpakowywania.
  • -z: Gzip, użyj gzip do rozpakowania pliku tar.
  • -f: File, nazwa pliku tar plik, z którym tar chcemy pracować. Po tej opcji musi następować nazwa pliku tar.

Wyświetl listę plików w katalogu za pomocą ls, a zobaczysz, że został utworzony katalog o nazwie Ukulele Songs. Wyodrębnione pliki znajdują się w tym katalogu. Skąd się wziął ten katalog? Został zawarty w pliku tar i wyodrębniony wraz z plikami.

Reklama

Teraz wyodrębnijmy piosenki gitarowe. Aby to zrobić, użyjemy prawie dokładnie tego samego polecenia co poprzednio, ale z jedną ważną różnicą. Sufiks rozszerzenia .bz2 informuje, że został skompresowany przy użyciu polecenia bzip2. Zamiast używać opcji -z (gzip), użyjemy opcji -j (bzip2).

tar -xvjf guitar_songs.tar.bz2

Po raz kolejny pliki są wyświetlane na terminalu podczas rozpakowywania. Dla jasności, opcje wiersza poleceń, których użyliśmy z tar dla pliku .tar.bz2, to:

Jeśli podamy pliki w katalogu Download zobaczymy, że został utworzony inny katalog o nazwie Guitar Songs.

Wybieranie miejsca wypakowania plików do

Jeśli chcemy wyodrębnić pliki do lokalizacji inny niż katalog bieżący, możemy określić katalog docelowy za pomocą opcji -C (określony katalog).

tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/
Reklama

W naszym katalogu Documents / Songs zobaczymy, że został utworzony katalog Guitar Songs.

Pamiętaj, że katalog docelowy musi już istnieć, tar nie utworzy go, jeśli go nie ma. Jeśli chcesz utworzyć katalog i mieć tar wyodrębnić wszystkie pliki jednym poleceniem, możesz to zrobić w następujący sposób:

mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/

Opcja -p (rodzice) powoduje, że mkdir tworzy wszystkie wymagane katalogi nadrzędne, zapewniając katalog docelowy jest tworzony.

Zaglądanie do plików Tar przed ich wyodrębnieniem

Do tej pory zrobiliśmy skok wiary i wyodrębniliśmy pliki niewidoczne. Możesz chcieć spojrzeć, zanim skoczysz. Możesz przejrzeć zawartość pliku tar przed wyodrębnieniem go, używając opcji -t (lista).Zwykle wygodnie jest przesłać dane potokiem za pomocą polecenia less.

tar -tf ukulele_songs.tar.gz | less
Reklama

Zauważ, że nie musimy używać opcji -z, aby wyświetlić listę plików. Opcję -z musimy dodać tylko wtedy, gdy wyodrębniamy pliki z pliku .tar.gz. Podobnie, nie potrzebujemy opcji -j, aby wyświetlić listę plików w pliku tar.bz2.

Przewijanie na wyjściu widzimy, że wszystko w pliku tar jest przechowywane w katalogu o nazwie Ukulele Songs, aw tym katalogu znajdują się pliki i inne katalogi.

Widzimy, że katalog Ukulele Songs zawiera katalogi o nazwie Losowe utwory, ramony i możliwe.

Aby wyodrębnić wszystkie pliki z katalogu w pliku tar, użyj następującego polecenia. Zwróć uwagę, że ścieżka jest ujęta w cudzysłów, ponieważ ścieżka zawiera spacje.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
Reklama

Aby wyodrębnić pojedynczy plik, podaj ścieżkę i nazwę pliku.

tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"

Możesz wyodrębnić wybrane pliki za pomocą symboli wieloznacznych, gdzie * reprezentuje dowolny ciąg znaków, a ? reprezentuje dowolny pojedynczy znak. Używanie symboli wieloznacznych wymaga użycia opcji --wildcards.

tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"

Wyodrębnianie plików bez wyodrębniania katalogów

Jeśli nie chcesz, aby struktura katalogów w pliku tar była odtwarzana na dysku twardym, użyj opcji --strip-components. Opcja --strip-components wymaga parametru numerycznego. Liczba reprezentuje liczbę poziomów katalogów do zignorowania. Pliki z ignorowanych katalogów są nadal wyodrębniane, ale struktura katalogów nie jest replikowana na dysku twardym.

Jeśli określimy --strip-components=1 w naszym przykładowym pliku tar, Na dysku twardym nie jest tworzony najwyższy katalog utworów ukulele w pliku tar. Pliki i katalogi, które zostałyby wypakowane do tego katalogu, są rozpakowywane w katalogu docelowym.

tar -xvzf ukulele_songs.tar.gz --strip-components=1
Reklama

Są tylko dwa poziomy zagnieżdżenia katalogów w naszym przykładowym pliku tar. Więc jeśli użyjemy --strip-components=2, wszystkie pliki zostaną wyodrębnione z katalogu docelowego i żadne inne katalogi nie zostaną utworzone.

tar -xvzf ukulele_songs.tar.gz --strip-components=2

Jeśli spojrzysz na stronę podręcznika Linux, zobaczysz, że tar musi być dobrym kandydatem na tytuł „polecenie mające najwięcej opcji wiersza poleceń”. Na szczęście, aby umożliwić nam wyodrębnianie plików z plików .tar.gz i tar.bz2 z dobrym stopniem szczegółowej kontroli, musimy pamiętać tylko kilka z tych opcji.

Dave McKay
Dave McKay po raz pierwszy używał komputerów, kiedy w modzie była taśma perforowana i od tamtej pory programuje . Po ponad 30 latach w branży IT, obecnie jest dziennikarzem technicznym na pełen etat. W swojej karierze pracował jako niezależny programista, kierownik międzynarodowego zespołu programistycznego, kierownik projektu usług IT, a ostatnio , jako inspektor ochrony danych. Dave jest ewangelistą Linuksa i zwolennikiem oprogramowania open source. Przeczytaj pełną biografię „

Leave a Reply

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *