Jak wyodrębnić pliki z pliku .tar.gz lub .tar.bz2 w systemie Linux?
Opublikowany: 2022-01-29
Pliki tar to skompresowane archiwa. Spotkasz je często 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 z rozszerzeniem .tar.gz
lub .tar.bz2
są skompresowanymi plikami archiwum. Plik z rozszerzeniem .tar
jest nieskompresowany, ale będzie to bardzo rzadkie.
Część .tar
rozszerzenia pliku oznacza archiwum taśm i jest to powód, dla którego oba te typy plików są nazywane 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 wyodrębniania plików tar na nasze dyski twarde. Ktoś gdzieś prawdopodobnie nadal używa tar
z taśmą.
Przyrostek rozszerzenia .gz
lub .bz2
wskazuje, że archiwum zostało skompresowane przy użyciu algorytmu kompresji gzip
lub bzip2
. Polecenie tar
będzie działać szczęśliwie 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 opcji wiersza poleceń tar
.
Wyodrębnianie plików z plików Tar
Załóżmy, że pobrałeś dwa pliki z nutami. Jeden plik nazywa się ukulele_songs.tar.gz
, drugi to guitar_songs.tar.bz2
. Pliki te znajdują się w katalogu Pobrane.
Wyodrębnijmy utwory na ukulele:
tar -xvzf ukulele_songs.tar.gz
Po wyodrębnieniu plików są one wyświetlane w oknie terminala.
Użyte opcje wiersza poleceń to:
- -x : Rozpakuj, pobierz pliki z pliku tar.
- -v : Pełne, wypisz pliki podczas ich rozpakowywania.
- -z : Gzip, użyj gzip do rozpakowania pliku tar.
- -f : Plik, nazwa pliku
tar
, z którym ma pracować tar. Po tej opcji musi następować nazwa pliku tar.
Wypisz pliki w katalogu za pomocą ls
, a zobaczysz, że utworzono katalog o nazwie Ukulele Songs. Wypakowane pliki znajdują się w tym katalogu. Skąd wziął się ten katalog? Znajdował się w pliku tar
i został wyodrębniony wraz z plikami.
Teraz wydobądźmy utwory gitarowe. Aby to zrobić, użyjemy prawie dokładnie tego samego polecenia co poprzednio, ale z jedną ważną różnicą. Przyrostek rozszerzenia .bz2
informuje nas, ż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 w terminalu podczas ich wyodrębniania. Aby było jasne, opcje wiersza poleceń, których użyliśmy z tar
dla pliku .tar.bz2
to:
- -x : Wyodrębnij, pobierz pliki z pliku tar.
- -v : Pełne, wypisz pliki podczas ich rozpakowywania.
- -j : Bzip2, użyj bzip2 do rozpakowania pliku tar.
- -f : Plik, nazwa pliku tar, z którym ma pracować tar.
Jeśli wymienimy pliki w katalogu Download, zobaczymy, że został utworzony inny katalog o nazwie Guitar Songs.
Wybieranie miejsca, w którym można wyodrębnić pliki
Jeśli chcemy rozpakować pliki do lokalizacji innej niż bieżący katalog, możemy określić katalog docelowy za pomocą opcji -C
(określony katalog).
tar -xvjf guitar_songs.tar.gz -C ~/Dokumenty/Utwory/
Zaglądając do naszego katalogu Documents/Songs, zobaczymy, że został utworzony katalog Guitar Songs.
Zauważ, że katalog docelowy musi już istnieć, tar
nie utworzy go, jeśli go nie ma. Jeśli chcesz utworzyć katalog i tar
do niego wszystkie pliki za pomocą jednego polecenia, możesz to zrobić w następujący sposób:
mkdir -p ~/Dokumenty/Utwory/Pobrane && tar -xvjf guitar_songs.tar.gz -C ~/Dokumenty/Utwory/Pobrane/
Opcja -p
(rodzice) powoduje, że mkdir
tworzy wszystkie wymagane katalogi nadrzędne, zapewniając utworzenie katalogu docelowego.
Zaglądanie do plików smoły przed ich rozpakowaniem
Do tej pory wykonaliśmy tylko skok wiary i wydobyliśmy niewidoczny widok plików. Możesz chcieć spojrzeć przed skokiem. Możesz przejrzeć zawartość pliku tar
przed jego rozpakowaniem, używając opcji -t
(lista). Zwykle wygodnie jest potokować dane wyjściowe za pomocą polecenia less
.
tar -tf ukulele_songs.tar.gz | mniej
Zauważ, że nie musimy używać opcji -z
, aby wyświetlić listę plików. Wystarczy dodać opcję -z
, gdy wyodrębniamy pliki z pliku .tar.gz
. Podobnie nie potrzebujemy opcji -j
, aby wyświetlić listę plików w pliku tar.bz2
.

Przewijając dane wyjściowe, 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 Random Songs, Ramones i Possibles.
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ż w ścieżce znajdują się spacje.
tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"
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 liczbowego. Liczba oznacza, ile poziomów katalogów należy zignorować. 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, najwyższy katalog Ukulele Songs w pliku tar nie zostanie utworzony na dysku twardym. Pliki i katalogi, które zostałyby wyodrębnione do tego katalogu, są wyodrębniane w katalogu docelowym.
tar -xvzf ukulele_songs.tar.gz --strip-components=1
W naszym przykładowym pliku tar są tylko dwa poziomy zagnieżdżania katalogów. Jeśli więc użyjemy --strip-components=2
, wszystkie pliki zostaną wyodrębnione w katalogu docelowym i nie zostaną utworzone żadne inne katalogi.
tar -xvzf ukulele_songs.tar.gz --strip-components=2
Jeśli spojrzysz na stronę podręcznika Linux, zobaczysz, że tar
musi być dobrym kandydatem do tytułu „polecenie posiadają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 o kilku z tych opcji.
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów