Jestem przyzwyczajony do wyodrębniania -xfz
archiwów z flagą, która obsługuje archiwa gzip i bzip2.
Ostatnio natknąłem się na .tar.xz
plik i chciałbym go rozpakować w jednym kroku za pomocą tar
, jak mogę to zrobić?
tar
compression
Jorge Castro
źródło
źródło
xz-utils
jeśli jeszcze nie jest obecnetar --help
wyświetlatar
flagi.-xzf
dotyczygzip
.-xjf
dobz2
.-xJf
doxz
.Odpowiedzi:
Ubuntu zawiera GNU tar, który sam rozpoznaje format! Jedno polecenie działa z dowolną obsługiwaną metodą kompresji, zgodnie z instrukcją .
itp. Jeśli tar
Cannot exec
wyświetla błąd, być może trzeba gosudo apt install xz-utils
najpierw.źródło
tar: xz: Cannot exec: No such file or directory
, zainstalujxz-utils
:sudo apt-get install xz-utils
tar
nie wymaga już konkretnej flagi?Próbować
tar -xJf file.pkg.tar.xz
Jest
-J
to flaga, która dotyczy konkretnie plików .xz.źródło
.xz
Jeśli z jakiegoś powodu
tar
rozwiązania nie działają (być może dlatego, że używasz wbudowanych OS X), spróbuj tego:… Co odpowiada:
Następnie użyj
tar
do rozpakowania pliku.źródło
unxz < file.tar.xz | tar x
.tar xf
nie. ubuntu 12.04unxz
nie jest równoważnyxz -dc
, ale doxz -d
. Tak, aby wyodrębnićfile.tar.xz
sięfile.tar
, że po prostu napisaćunxz file.tar.xz
. Jeśli chcesz mieć odpowiednikxz -dc
dekompresujący na standardowe wyjście, użyjxzcat
. Na przykładxzcat file.tar.xz | tar x
.xz to bezstratny kompresor danych. Będziesz musiał wyodrębnić smołę z Xz, a następnie wyodrębnić smołę:
Więc wiesz, jak wyodrębnić smołę
Źródło: XZ Utils - Wikipedia .
źródło
xz
nie wymaga przekierowania standardowego. Jeszcze lepiej:unxz -k
Miałem ten sam problem,
tar xf
polecenie nie było w stanie go wyodrębnić. Aby to naprawić, musisz zainstalowaćxz-utils
pakiet. Rozwiązaniem było:następnie:
źródło
-x
- Rozpakuj pliki-v
- pełna lista przetworzonych plików-f
- użyj określonego pliku archiwumźródło
Chcę tylko dodać, że jeśli masz starszą wersję tar GNU przed wersją 1.22, kiedy opcje --xz i -J stały się dostępne, możesz kompresować lub dekompresować pliki tar.xz za pomocą
--use-compress-program xz
. Na przykład,lub
źródło
Jeśli tar rozpozna format kompresji, nie potrzebujesz flagi:
tar xvf *.tar.xz
Jeśli musisz ręcznie zdekompresować dane wejściowe, na przykład dlatego, że tar jest za stary, aby rozpoznać Xz, lub potrzebujesz specjalnej ścieżki:
xz -cd *.tar.xz | tar xvf -
Potoki są szybsze niż tworzenie nieskompresowanego pliku pośredniego i zajmują mniej miejsca na dysku!
źródło
Lubię dtrx
źródło
Wow, to naprawdę dobre. Czy zrobiono to z 7zip na Macu? Spróbuj tego:
źródło
tar J
=tar xz
, więc możemy nawet pisaćtar xzf file.tar.xz
jak „normalnie”tar xvfz file.tar.gz
. W zasadzie nie ma różnicy. Przed użyciem przełącznika nie jest wymagana kreska.Ubuntu zawiera Python (Python 2.7 i Python 3), który zawiera moduły niezbędne do wypakowywania archiwów. Więc jeśli z jakiegoś powodu
tar
brakuje polecenia (powiedz, że twój sysadmin go usunął i nie maszsudo
uprawnień do jego instalacji), możesz użyć:W skrócie jest to bardziej czytelne, ponieważ:
Załóżmy, że utworzyłem
.xz
pliktar cJf thing.xz /etc/passwd
. Archiwum będzie zawieraćetc
katalog zpasswd
plikiem w środku. Użycie powyższego skryptu spowodujeetc
utworzenie katalogu w bieżącym katalogu roboczym, w którym będziepasswd
plik. Oczywiście można to zawsze rozszerzyć, określając ścieżkę, do której chcesz wyodrębnićextractall()
funkcję.źródło
unar
jest całkiem fajnym prostym programem i łatwym do pisania, do archiwizacji prawie dowolnego formatu, w tym 7z i RARwydaje się, że jest napisany w (GNU) Objective-C, a zatem wymaga instalacji niektórych
gnustep
bibliotek (implementacja Objective-C GNU) (gnustep-base-runtime
ilibgnustep-base1.25
)jeśli użyjesz opcji --install-sugeruje lub skonfigurowałeś się
apt
do instalowania sugerowanych pakietów,unar
zasugeruje i zainstaluje wiele programów GUI GNUStep, które nie są tym, czego chceszautomatycznie utworzy katalog wyjściowy
linux-source
.źródło