在一个命令中创build一个tar.xz

我正尝试在一个命令中创build一个.tar.xz压缩的归档文件。 什么是特定的语法?

我已经尝试了tar cf - file | xz file.tar.xz tar cf - file | xz file.tar.xz ,但是不起作用。

xz使用-J压缩选项。 并记住man tar 🙂

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

编辑2015-08-10:

如果你使用破折号将parameter passing给tar (例如: tar -cf而不是tar cf ), 那么-f选项必须最后一个 ,因为它指定了文件名(感谢@ABB指出!)。 在这种情况下,该命令如下所示:

 tar -cJf <archive.tar.xz> <files> 

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

使.tar.xz存档

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

说明

  1. tar cf - directory读取目录/并开始将其设置为TAR格式。 此操作的输出在标准输出上生成。

  2. | pipe道标准输出到另一个程序的input…

  3. …碰巧是xz -zf - 。 XZconfiguration为从文件( -f )创build( -z )档案,这恰好是标准input( - )。

  4. 您将输出从xzredirect到tar.xz文件。

如果你喜欢pipe道模式,这是最干净的解决scheme:

 tar c some-dir | xz > some-dir.tar.xz 

没有必要为了处理文件而使用f选项,然后使用-来指定文件是标准input。 也没有必要为xz指定-z选项,因为它是默认的。

它也适用于gzipbzip2

 tar c some-dir | gzip > some-dir.tar.gz 

要么

 tar c some-dir | bzip2 > some-dir.tar.bz2 

解压缩也很简单:

 xzcat tarball.tar.xz | tar x bzcat tarball.tar.bz2 | tar x zcat tarball.tar.gz | tar x 

如果你只有tar档案,你可以使用cat

 cat archive.tar | tar x 

如果只需要列出文件,请使用tar t

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

注意:

  1. tar.gz和tar.xz是不一样的; xz提供了更好的压缩。
  2. 不要使用pipe道| 因为这会同时运行命令。 使用; 或者一个接一个地执行命令。