使用一个命令解压缩.txz和.tar中压缩的文件


13

我有一个在* .txz中压缩的文件。解压缩后,我收到了* .tar文件。有什么方法可以用一个命令将其解压缩两次?我的意思是用一个命令解压缩文件(* .tar).txz?

知道我是这样的:

xz -d file.txz
tar xvf file.tar

但我想知道是否有更好的方法。

Answers:


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

这与任何压缩归档文件相同。您永远不必创建原始文件的未压缩副本。

一些tar实现(例如最新版本的GNU)tar具有内置选项,可以xz自行调用。

使用GNU tarbsdtar

tar Jxvf file.tar.xz

不过,如果您的版本具有-J,则可能会xz自动检测文件,因此:

tar xvf file.tar.xz

就足够了。

如果您的GNU或BSD tar太旧而无法xz具体支持,则可以使用以下--use-compress-program选项:

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

tar调用压缩机实用程序的优点之一是它能够报告其退出状态下的失败。

注意:如果tar.xz归档文件是使用创建的pixz,则pixz可能已在其中添加了tar索引,从而可以单独提取文件而不必解压缩整个归档文件:

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

我必须使用这个:tar --use-compress-program = xz -xvf file.tar.gz谢谢!
帕维尔Jaworowski


4

开箱可能不是正确的术语。您可以解压缩xz解压tar

GNU的手册页tarman tarDebian上默认为GNU tar)指定您可以使用:

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

xz支持该-d选项,因此您可以使用:

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

什么是从该名男子页远远不太清楚的是,-xz-J是速记--use-compress-program xz-I xz

手册页中根本没有指定的是您可以执行

tar xvf file.txz 

在GNU tar中,它将识别tar文件被压缩xz

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.