首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令来创建XZ文件。

命令来创建XZ文件。
EN

Unix & Linux用户
提问于 2021-09-22 16:46:48
回答 1查看 1.4K关注 0票数 2

手册称7z工具支持7z、LZMA2、XZ、ZIP、Zip64、CAB、RAR、ARJ、GZIP、BZIP2、TAR、CPIO、RPM、ISO、大多数文件系统映像和DEB格式。

它说,我们可以传递类型为-t{Type}。以下命令为“成功”。

代码语言:javascript
复制
7z a -tzip archive.zip dir1 dir2 file1 file2

但是,我不能使用以下命令将文件存档到.xz中。

代码语言:javascript
复制
7z a -txz archive.zip dir1 dir2 file1 file2
代码语言:javascript
复制
$ 7z a -txz archive.xz dir1 dir2 file1 file2

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-7200U CPU @ 2.50GHz (806E9),ASM,AES-NI)

Scanning the drive:
2 folders, 7 files, 196192711 bytes (188 MiB)

Creating archive: archive.xz

Items to compress: 9



System ERROR:
E_INVALIDARG

我在这里做错什么了吗?如何使用.xz命令创建7z文件?

编辑:以下命令成功。

代码语言:javascript
复制
7z a -txz archive archive.tar

这是否意味着我们只能在存档文件上使用-txz-tbzip2,因为我们不能直接对文件使用压缩而不首先归档这些文件?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-09-22 17:08:16

与gzip (.gz)和bzip2 (.bz2)类似,但与zip和rar不同,xz是压缩格式,而不是归档格式。您可以压缩一个文件:

代码语言:javascript
复制
7z a -txz foo.xz foo

这相当于xz foo

通常,要创建一个压缩的归档文件,您可以创建一个tar存档并对其进行压缩。您可以使用7z创建一个压缩的归档文件,但据我所知,您不能在一步之内完成它:您必须先创建tar,然后再压缩它。(7z确实知道如何直接从压缩的归档中读取。)你可以在管道里做到这一点。

代码语言:javascript
复制
set -o pipefail
7z a -ttar -so archive.tar.xz dir1 dir2 file1 file2 | 7z a -txz -si archive.tar.xz

据我所知,左侧命令中的archive.tar.xz被忽略(-so告诉7z写入标准输出),但仍然是必要的。

使用管道时,请注意,在sh中,如果tar创建失败,例如无法读取文件,则管道命令不会失败。Ksh、bash和zsh有一个选项pipefail使整个命令失败。

直接调用tar要简单得多。大多数现代的tar实现都可以创建gz、bz2和xz压缩档案。

代码语言:javascript
复制
tar -cJf archive.tar.xz dir1 dir2 file1 file2
票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/670151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档