7z 명령은 XZ 파일을 생성합니다

7z 명령은 XZ 파일을 생성합니다

매뉴얼 페이지에는 7z 도구 지원이 나와 있습니다.7z, LZMA2, XZ, ZIP, Zip64, CAB, RAR, ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO,대부분의 파일 시스템 이미지와DEB체재.

-t{Type}다음 명령이 성공 하면 유형을 전달할 수 있다고 나와 있습니다 .

7z a -tzip archive.zip dir1 dir2 file1 file2

.xz하지만 다음 명령을 사용하여 파일을 보관할 수 없습니다 .

7z a -txz archive.zip dir1 dir2 file1 file2
$ 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?

편집하다: 다음 명령이 성공합니다.

7z a -txz archive archive.tar

파일을 먼저 보관하지 않으면 파일에 직접 압축을 사용할 수 없기 때문에 보관된 파일 에만 -txzor 를 사용할 수 있다는 의미입니까?-tbzip2

답변1

gzip( .gz) 및 bzip2( .bz2)와 비슷하지만 zip 및 rar과 달리 xz는 아카이브 형식이 아닌 압축 형식입니다. 파일을 압축할 수 있습니다.

7z a -txz foo.xz foo

이는 와 동일합니다 xz foo.

일반적으로 압축된 아카이브를 만들려면 tar 아카이브를 만들고 압축합니다. 7z를 사용하여 압축된 아카이브를 만들 수 있지만 내가 아는 한 한 단계로 할 수는 없습니다. 먼저 tar를 만든 다음 압축해야 합니다. (7z는 압축된 아카이브에서 직접 읽는 방법을 알고 있습니다.) 파이프라인에서 이 작업을 수행할 수 있습니다.

set -o pipefail
7z a -ttar -so archive.tar.xz dir1 dir2 file1 file2 | 7z a -txz -si archive.tar.xz

내가 아는 한, archive.tar.xz왼쪽 명령은 무시되지만( -so7z에게 stdout에 쓰라고 지시함) 여전히 필요합니다.

파이프를 사용할 때 sh에서 파일을 읽을 수 없기 때문에 tar 생성이 실패하더라도 파이프 명령은 실패하지 않습니다. Ksh, bash 및 zsh에는 pipefail전체 명령이 실패하도록 하는 옵션이 있습니다 .

직접 전화하는 것이 훨씬 간단합니다 tar. 대부분의 최신 tar 구현에서는 gz, bz2 및 xz 압축 아카이브를 만들 수 있습니다.

tar -cJf archive.tar.xz dir1 dir2 file1 file2

관련 정보