Rozpakuj plik skompresowany w .txz i .tar za pomocą jednego polecenia


13

Mam plik skompresowany w * .txz. Po rozpakowaniu otrzymałem plik * .tar. Czy jest jakiś sposób, aby rozpakować go dwukrotnie za pomocą jednego polecenia? Mam na myśli rozpakowanie pliku (* .tar) .txz za pomocą jednego polecenia?

Wiem, że robię to w ten sposób:

xz -d file.txz
tar xvf file.tar

Ale zastanawiam się, czy jest lepszy sposób.

Odpowiedzi:


18
xz -d < file.tar.xz | tar xvf -

Tak samo jest z każdym skompresowanym archiwum. Nigdy nie powinieneś tworzyć nieskompresowanej kopii oryginalnego pliku.

Niektóre tarimplementacje, takie jak najnowsze wersje GNU, tarmają wbudowane opcje do xzsamodzielnego wywoływania .

Z GNU tarlub bsdtar:

tar Jxvf file.tar.xz

Chociaż, jeśli masz wersję, która ma -J, istnieje szansa, że ​​automatycznie wykryje xzpliki, więc:

tar xvf file.tar.xz

wystarczy.

Jeśli Twój GNU lub BSD tarjest za stary, aby go w xzszczególności obsługiwać , możesz skorzystać z --use-compress-programopcji:

tar --use-compress-program=xz -xvf file.tar.gz

Jedną z zalet tarwywołania narzędzia kompresora jest to, że może zgłosić awarię w stanie wyjścia.

Uwaga: jeśli tar.xzarchiwum zostało utworzone za pomocą pixz, pixzmogło tardo niego dodać indeks, który umożliwia indywidualne rozpakowywanie plików bez konieczności rozpakowywania całego archiwum:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -

Muszę użyć tego: tar --use-compress-program = xz -xvf file.tar.gz Dzięki!
Paweł Jaworowski


4

Rozpakowanie prawdopodobnie nie jest właściwą terminologią. Można rozpakować z xzi rozpakować z tar.

Strona podręcznika dla GNU tar( man tarGNU tar jest domyślnym w Debianie) określa, że ​​możesz użyć:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)

i xzobsługuje tę -dopcję, dzięki czemu można użyć:

tar --use-compress-program xz xvf file.txz 

Co jest znacznie mniej oczywiste ze strony człowieka jest to, że -xzi -Jsą skróty dla --use-compress-program xzlub -I xz.

A na stronie podręcznika nie jest wcale określone to, co możesz zrobić

tar xvf file.txz 

w GNU tar i rozpozna plik tar jako skompresowany xz.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.