在一个命令中创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
说明
-
tar cf - directory
读取目录/并开始将其设置为TAR格式。 此操作的输出在标准输出上生成。 -
|
pipe道标准输出到另一个程序的input… -
…碰巧是
xz -zf -
。 XZconfiguration为从文件(-f
)创build(-z
)档案,这恰好是标准input(-
)。 -
您将输出从
xz
redirect到tar.xz
文件。
如果你喜欢pipe道模式,这是最干净的解决scheme:
tar c some-dir | xz > some-dir.tar.xz
没有必要为了处理文件而使用f
选项,然后使用-
来指定文件是标准input。 也没有必要为xz
指定-z
选项,因为它是默认的。
它也适用于gzip
和bzip2
:
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
注意:
- tar.gz和tar.xz是不一样的; xz提供了更好的压缩。
- 不要使用pipe道
|
因为这会同时运行命令。 使用;
或者一个接一个地执行命令。