我习惯使用带有-xfz标志的tar压缩文件,该标志可以处理gzip和bzip2存档。
最近,我遇到了一个.tar.xz文件,我想使用一步将其解压缩tar,该怎么办?
tar --help列出tar标志。 -xzf适用于gzip。 -xjf到bz2。 -xJf到xz。
我习惯使用带有-xfz标志的tar压缩文件,该标志可以处理gzip和bzip2存档。
最近,我遇到了一个.tar.xz文件,我想使用一步将其解压缩tar,该怎么办?
tar --help列出tar标志。 -xzf适用于gzip。 -xjf到bz2。 -xJf到xz。
Answers:
Ubuntu包含GNU tar,它可以自己识别格式!根据手册,一个命令可用于任何受支持的压缩方法。
tar xf archive.tar.xz
tar xf archive.tar.gz
tar xf archive.tar
等等。如果tar提供了Cannot exec错误,则可能需要sudo apt install xz-utils先执行。
tar: xz: Cannot exec: No such file or directory,请安装xz-utils:sudo apt-get install xz-utils
tar不再需要特定标志?
尝试
tar -xJf file.pkg.tar.xz
的-J是,随着.xz文件专门处理的标志。
.xz
如果由于某种原因该tar解决方案不起作用(可能是因为您使用的是OS X内置程序),请尝试以下操作:
unxz < file.tar.xz > file.tar
…相当于:
xz -dc < file.tar.xz > file.tar
然后使用tar解压缩文件。
unxz < file.tar.xz | tar x或类似。
tar xf没有。ubuntu 12.04
unxz并不等同于xz -dc,而是xz -d。因此,提取file.tar.xz到file.tar,你只要写unxz file.tar.xz。如果您希望将相当于xz -dc解压缩为stdout,请使用xzcat。例如xzcat file.tar.xz | tar x。
xz是无损数据压缩器。您将必须从xz提取tar球,然后提取tar:
unxz my_archive.tar.xz # results in my_archive.tar
然后您知道提取焦油
tar -xf my_archive.tar
资料来源:XZ Utils-Wikipedia。
xz不需要stdout重定向。甚至更好:unxz -k
哇,真是个好人。在Mac上使用7zip完成吗?尝试这个:
7z x -so file.tar.xz | tar xf -
tar J= tar xz,所以我们甚至可以写成tar xzf file.tar.xz“ normal” tar xvfz file.tar.gz。所以基本上没有区别。使用开关前无需破折号。
Ubuntu随附了Python(Python 2.7和Python 3),其中包含提取档案的必要模块。因此,如果由于某种原因tar缺少命令(例如您的系统管理员已将其删除,而您没有sudoprivillege来安装它),则可以使用:
python3 -c 'import tarfile,sys; b = tarfile.open(sys.argv[1]);print(b.extractall())' ./archive.xz
作为一个简短的脚本,它更具可读性:
#!/usr/bin/env python3
import tarfile,sys
with tarfile.open( sys.argv[1] ) as fd:
fd.extractall()
假设我使用创建了一个.xz文件tar cJf thing.xz /etc/passwd。存档将包含etc目录,其中包含passwd文件。使用上面的脚本将在etc当前工作目录中创建目录,并且该目录中将包含passwd文件。当然,可以始终通过在extractall()函数内部指定要提取的路径来扩展它。
unar 是一个非常不错的简单程序,易于键入,可以取消存档几乎所有格式,包括7z和RAR
它似乎是用(GNU)Objective-C编写的,因此需要安装一些gnustep(GNU的Objective-C实现)库(gnustep-base-runtime和 libgnustep-base1.25)
如果您使用--install-suggests或已配置apt为安装建议的软件包,unar则会建议并安装许多您不想要的GUI GNUStep程序
sudo apt install --no-install-suggests unar
unar linux-source.tar.xz
它将自动创建输出目录linux-source。
xz-utils如果尚未安装,则可能需要安装