我正在尝试创建一个。tar。Xz压缩档案在一个命令。具体的语法是什么?

我已经尝试了tar cf - file | xz file.tar。Xz,但这行不通。


当前回答

Switch -J只适用于较新的系统。通用命令是:

创建.tar。xz存档

tar cf - directory/ | xz -z - > directory.tar.xz

解释

tar cf - directory读取目录/并开始将其转换为tar格式。该操作的输出是在标准输出上生成的。 |管道标准输出到另一个程序的输入… ... 也就是xz -z -。XZ被配置为压缩(-z)来自标准输入(-)的存档。 您将输出从xz重定向到tar。xz文件。

其他回答

对xz使用-J压缩选项。记得涂上焦油哦:)

tar cfJ <archive.tar.xz> <files>

编辑2015-08-10:

如果你用破折号传递参数给tar(例如:tar -cf而不是tar cf),那么-f选项必须放在最后,因为它指定了文件名(感谢@A-B-B指出这一点!)在这种情况下,命令看起来像:

tar -cJf <archive.tar.xz> <files>
tar -I 'xz -9 -T0' -cf <archive.tar.xz> <files>

在这种方法中,也可以将参数传递给xz。你可以随心所欲地改变论点。-9表示压缩级别,-T0表示使用多个线程。

它还可以与其他压缩工具一起工作,例如zstd

tar -I 'zstd -18 -T0' -cf <archive.tar.ztd> <files>

该命令只对gnu-tar生效。这是大多数Linux发行版所附带的。在Mac中,您可以安装gtar https://formulae.brew.sh/formula/gnu-tar

试试这个:tar -cf file.tar file-to-compress;Xz -z file.tar

注意:

tar.gz和tar.gz。Xz是不一样的;Xz提供更好的压缩。 不要使用管道|,因为它会同时运行命令。使用;或&依次执行命令。

我总是记不起哪个存档开关做了什么,所以最近,我更喜欢更新的tar版本中的“自动压缩”特性(-a或——auto-compress)。命令看起来就像这样:

tar caf file.tar.xz file

使用这个-a选项,tar从用于存档的文件结尾自动推断出要使用的压缩!

Switch -J只适用于较新的系统。通用命令是:

创建.tar。xz存档

tar cf - directory/ | xz -z - > directory.tar.xz

解释

tar cf - directory读取目录/并开始将其转换为tar格式。该操作的输出是在标准输出上生成的。 |管道标准输出到另一个程序的输入… ... 也就是xz -z -。XZ被配置为压缩(-z)来自标准输入(-)的存档。 您将输出从xz重定向到tar。xz文件。