我有一个在* .txz中压缩的文件。解压缩后,我收到了* .tar文件。有什么方法可以用一个命令将其解压缩两次?我的意思是用一个命令解压缩文件(* .tar).txz?
知道我是这样的:
xz -d file.txz
tar xvf file.tar
但我想知道是否有更好的方法。
我有一个在* .txz中压缩的文件。解压缩后,我收到了* .tar文件。有什么方法可以用一个命令将其解压缩两次?我的意思是用一个命令解压缩文件(* .tar).txz?
知道我是这样的:
xz -d file.txz
tar xvf file.tar
但我想知道是否有更好的方法。
Answers:
xz -d < file.tar.xz | tar xvf -
这与任何压缩归档文件相同。您永远不必创建原始文件的未压缩副本。
一些tar
实现(例如最新版本的GNU)tar
具有内置选项,可以xz
自行调用。
使用GNU tar
或bsdtar
:
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 -
开箱可能不是正确的术语。您可以解压缩与xz
和解压用tar
。
GNU的手册页tar
(man tar
Debian上默认为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
。