Geo*_* K. 127 compression tar archive xz
我试图.tar.xz
在一个命令中创建一个压缩存档.具体的语法是什么?
我试过了tar cf - file | xz file.tar.xz
,但那不起作用.
小智 203
使用-J
压缩选项xz
.并记得man tar
:)
tar cfJ <archive.tar.xz> <files>
Run Code Online (Sandbox Code Playgroud)
编辑2015-08-10:
如果你将参数传递给tar
破折号(例如:tar -cf
相反tar cf
),那么该-f
选项必须是最后一个,因为它指定了文件名(感谢@ABB指出它!).在这种情况下,命令看起来像:
tar -cJf <archive.tar.xz> <files>
Run Code Online (Sandbox Code Playgroud)
小智 39
Switch -J
仅适用于较新的系统.普遍命令是:
制作.tar.xz存档
tar cf - directory/ | xz -z - > directory.tar.xz
Run Code Online (Sandbox Code Playgroud)
说明
tar cf - directory
读取目录/并开始将其置于TAR格式.在标准输出上生成此操作的输出.
|
管道标准输出到另一个程序的输入...
......恰好是xz -zf -
.XZ配置为-z
从file(-f
)创建()恰好是标准输入(-
)的存档.
您将输出重定向xz
到tar.xz
文件.
小智 32
如果你喜欢管道模式,这是最干净的解决方案:
tar c some-dir | xz > some-dir.tar.xz
Run Code Online (Sandbox Code Playgroud)
没有必要使用该f
选项来处理文件,然后-
用于指定文件是标准输入.也没有必要为其指定-z
选项xz
,因为它是默认选项.
它的工作原理与gzip
和bzip2
太:
tar c some-dir | gzip > some-dir.tar.gz
Run Code Online (Sandbox Code Playgroud)
要么
tar c some-dir | bzip2 > some-dir.tar.bz2
Run Code Online (Sandbox Code Playgroud)
解压缩也很简单:
xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x
Run Code Online (Sandbox Code Playgroud)
如果您只有tar
存档,则可以使用cat
:
cat archive.tar | tar x
Run Code Online (Sandbox Code Playgroud)
如果您只需要列出文件,请使用tar t
.
cod*_*ing 11
我永远记不起哪个存档开关做了什么,所以现在,我更喜欢较新的 tar 版本(-a
或--auto-compress
)中的“自动压缩”功能。该命令看起来就像这样:
tar caf file.tar.xz file
Run Code Online (Sandbox Code Playgroud)
使用 -a 选项,tar 会从用于存档的文件结尾自动推断要使用的压缩!
如果要为使用压缩选项xz
,或者tar
在MacOS上使用压缩选项,则可能要避免使用tar -cJf
语法。
根据man xz
,执行此操作的方法是:
tar cf - baz | xz -4e > baz.tar.xz
因为我喜欢Wojciech Adam Koszek的格式,但不喜欢以下信息:
c
为指定的文件创建一个新的存档。 f
从目录中读取(最好放第二个,因为-cf
!= -fc
)-
输出到标准输出|
管道输出到下一个命令xz -4e
xz
使用-4e
压缩选项进行调用。(等于-4
--extreme
)> baz.tar.xz
将压缩和压缩的文件定向到 baz.tar.xz
在哪里-4e
,使用您自己的压缩选项。我经常使用-k
到--keep
的原始文件,-9
对于较重的压缩。-z
手动设置xz
为zip,但如果没有其他指示,则默认为zip。
回显Rafael van Horn,以解压缩和解压缩(请参见下面的注释):
xz -dc baz.tar.xz | tar x
Run Code Online (Sandbox Code Playgroud)
注意:与Rafael的答案不同,请使用xz -dc
代替catxz
。如果您使用此脚本进行脚本编写,则文档会建议这样做。最好养成使用-d
或--decompress
代替的习惯unxz
。但是,如果必须的话,可以从命令行使用这些命令。