annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/ko/man1/unxz.1 @ 68:5028fdace37b

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 16:23:26 -0400
parents
children
rev   line source
jpayne@68 1 '\" t
jpayne@68 2 .\" SPDX-License-Identifier: 0BSD
jpayne@68 3 .\"
jpayne@68 4 .\" Authors: Lasse Collin
jpayne@68 5 .\" Jia Tan
jpayne@68 6 .\"
jpayne@68 7 .\" Korean translation for the xz-man
jpayne@68 8 .\" Seong-ho Cho <darkcircle.0426@gmail.com>, 2023, 2024.
jpayne@68 9 .\"
jpayne@68 10 .\"*******************************************************************
jpayne@68 11 .\"
jpayne@68 12 .\" This file was generated with po4a. Translate the source file.
jpayne@68 13 .\"
jpayne@68 14 .\"*******************************************************************
jpayne@68 15 .TH XZ 1 2024\-12\-30 Tukaani "XZ 유틸리티"
jpayne@68 16 .
jpayne@68 17 .SH 이름
jpayne@68 18 xz, unxz, xzcat, lzma, unlzma, lzcat \- .xz 파일과 .lzma 파일을 압축 또는 압축 해제합니다
jpayne@68 19 .
jpayne@68 20 .SH 요약
jpayne@68 21 \fBxz\fP [\fI<옵션>...\fP] [\fI<파일>...\fP]
jpayne@68 22 .
jpayne@68 23 .SH "명령 별칭"
jpayne@68 24 \fBunxz\fP 명령은 \fBxz \-\-decompress\fP 명령과 동일합니다.
jpayne@68 25 .br
jpayne@68 26 \fBxzcat\fP 명령은 \fBxz \-\-decompress \-\-stdout\fP 명령과 동일합니다.
jpayne@68 27 .br
jpayne@68 28 \fBlzma\fP 명령은 \fBxz \-\-format=lzma\fP 명령과 동일합니다.
jpayne@68 29 .br
jpayne@68 30 \fBunlzma\fP 명령은 \fBxz \-\-format=lzma \-\-decompress\fP 명령과 동일합니다.
jpayne@68 31 .br
jpayne@68 32 \fBlzcat\fP 명령은 \fBxz \-\-format=lzma \-\-decompress \-\-stdout\fP 명령과 동일합니다.
jpayne@68 33 .PP
jpayne@68 34 파일 압축을 해제해야 하는 셸 스크립트를 작성할 때, \fBunxz\fP 와 \fBxzcat\fP 이름 대신 \fBxz\fP 명령과 적절한 인자
jpayne@68 35 값(\fBxz \-d\fP 또는 \fBxz \-dc\fP)의 사용을 추천드립니다.
jpayne@68 36 .
jpayne@68 37 .SH 설명
jpayne@68 38 \fBxz\fP는 \fBgzip\fP(1) 과 \fBbzip2\fP(1) 과 비슷한 명령행 문법을 지닌 범용 데이터 압축 도구입니다. 자체 파일
jpayne@68 39 형식은 \fB.xz\fP 형식이나, LZMA 유틸리티에서 사용하는 예전 \fB.lzma\fP 형식과 형식 헤더가 없는 RAW 압축 스트림도
jpayne@68 40 지원합니다. 게다가, \fBlzip\fP에서 활용하는 \fB.lz\fP 형식 압축 해제도 지원합니다.
jpayne@68 41 .PP
jpayne@68 42 각 \fI파일\fP 에 대한 \fBxz\fP 압축 또는 압축 해제는 선택 동작 모드에 따릅니다. \fI<파일>\fP 값이 주어졌거나
jpayne@68 43 \fI<파일>\fP 값이 \fB\-\fP이면, \fBxz\fP 명령에서 표준 입력을 읽고 처리한 데이터를 표준 출력에 기록합니다.
jpayne@68 44 \fBxz\fP 에서는 터미널에서 활용할 경우 압축 데이터를 표준 압축으로 기록하는 동작을 거절(오류를 출력하고 \fI<파일>\fP을
jpayne@68 45 건너뜀)합니다. 이와 비슷하게, \fBxz\fP 유틸리티를 터미널에서 실행하면 표준 입력의 압축 데이터 읽기를 거절합니다.
jpayne@68 46 .PP
jpayne@68 47 \fB\-\-stdout\fP 을 지정하지 않는 한, \fB\-\fP가 아닌 \fI<파일>\fP을 원본 \fI<파일>\fP 이름에서
jpayne@68 48 가져온 새 파일 이름으로 기록합니다:
jpayne@68 49 .IP \(bu 3
jpayne@68 50 압축할 때, 대상 파일 형식의 접미사(\fB.xz\fP or \fB.lzma\fP) 는 원본 파일 이름 뒤에 붙어 대상 파일이름이 됩니다.
jpayne@68 51 .IP \(bu 3
jpayne@68 52 압축 해제할 때, \fB.xz\fP, \fB.lzma\fP, \fB.lz\fP 접미사를 파일 이름에서 제거하고 대상 파일 이름을 알아냅니다.
jpayne@68 53 \fBxz\fP에서는 \fB.txz\fP, \fB.tlz\fP 접미사도 인식하며, \fB.tar\fP 접미사로 치환합니다.
jpayne@68 54 .PP
jpayne@68 55 대상 파일이 이미 있으면, 오류를 나타내고 \fI<파일>\fP을 건너뜁니다.
jpayne@68 56 .PP
jpayne@68 57 표준 출력으로 기록하기 전에는, \fBxz\fP는 경고를 나타내며, 다음 조건에 만족할 경우 \fI<파일>\fP을 건너뜁니다:
jpayne@68 58 .IP \(bu 3
jpayne@68 59 \fI<파일>\fP이 일반 파일이 아닐 때. 심볼릭 링크는 따라가지 않기에, 일반 파일로 간주하지 않습니다.
jpayne@68 60 .IP \(bu 3
jpayne@68 61 \fI<파일>\fP이 하나 이상의 하드 링크일 떄.
jpayne@68 62 .IP \(bu 3
jpayne@68 63 \fI<파일>\fP에 setuid, setgid, 끈적이 비트 집합이 붙어있을 떄.
jpayne@68 64 .IP \(bu 3
jpayne@68 65 동작 모드를 압축으로 설정하고, \fI<파일>\fP은 대상 파일 형식의 접미사를 이미 붙였을 때(\fB.xz\fP 형식으로 압축하면
jpayne@68 66 \&\fB.xz\fP 또는 \fB.txz\fP, \fB.lzma\fP 형식으로 압축하면 \fB.lzma\fP 또는 \fB.tlz\fP).
jpayne@68 67 .IP \(bu 3
jpayne@68 68 동작 모드를 압축 해제로 설정하고, \fI<파일>\fP에 지원 파일 형식 접미사(\fB.xz\fP, \fB.txz\fP, \fB.lzma\fP,
jpayne@68 69 \&\fB.tlz\fP, \fB.lz\fP)를 붙이지 않았을 때.
jpayne@68 70 .PP
jpayne@68 71 \fI<파일>\fP 의 압축 또는 압축 해제를 성공하고 나면, \fBxz\fP는 소유자, 소유그룹, 권한, 접근 시각, 수정 시각
jpayne@68 72 정보를 원본 \fI<파일>\fP에서 대상 파일로 그대로 복사합니다. 그룹 정보 복사에 실패하면, 권한을 수정하여 원본
jpayne@68 73 \fI<파일>\fP에 접근 권한이 없는 사용자가 대상 파일로 접근하지 못하게 합니다. \fBxz\fP는 아직 접근 제어 목록이나
jpayne@68 74 확장 속성 등의 기타 메타데이터를 복사하는 기능은 지원하지 않습니다.
jpayne@68 75 .PP
jpayne@68 76 대상 파일을 온전히 닫고 나면, \fB\-\-keep\fP 옵션을 지원하지 않았을 경우 원본 \fI<파일>\fP을 제거합니다. 원본
jpayne@68 77 \fI<파일>\fP은 출력을 표준 출력으로 기록했거나 오류가 발생했을 경우 제거하지 않습니다.
jpayne@68 78 .PP
jpayne@68 79 \fBxz\fP 프로세스에 \fBSIGINFO\fP 시그널 또는 \fBSIGUSR1\fP 시그널을 보내면 표준 출력으로 진행 정보를 출력합니다. 표준
jpayne@68 80 오류가 터미널일 경우일 경우에만 제한하며 \fB\-\-verbose\fP 옵션을 지정하면 진행 표시줄을 자동으로 나타냅니다.
jpayne@68 81 .
jpayne@68 82 .SS "메모리 사용"
jpayne@68 83 \fBxz\fP 메모리 사용은 수백 킬로바이트로 시작하여 수 기가바이트까지 압축 설정에 따라 다릅니다. 압축 해제 프로그램이 필요로 하는
jpayne@68 84 메모리 공간을 결정하는 파일 압축시에 설정 값을 활용합니다. 보통 압축 해제 프로그램은 파일을 만들 때, 압축 프로그램 메모리 사용량의
jpayne@68 85 5% 에서 20% 정도 필요합니다. 예를 들면, \fBxz \-9\fP로 압축한 파일 압축 해제시 현재 65MiB 메모리 용량이 필요합니다.
jpayne@68 86 여전하게도, 압축 해제시 수 기가 바이트의 메모리가 필요한 \fB.xz\fP 파일에도 가능한 이야기입니다.
jpayne@68 87 .PP
jpayne@68 88 특히 이전 시스템 사용자의 경우 메모리 사용량이 엄청나게 늘어나는 점에 짜증이 날 수 있습니다. 이런 불편한 상황을 피하기 위해,
jpayne@68 89 \fBxz\fP에 기본적으로 비활성 상태인 내장 메모리 사용 제한 기능을 넣었습니다. 일부 운영체제에서 처리 중 메모리 사용을 제한하는
jpayne@68 90 수단을 제공하긴 하지만, 여기에 의지하기에는 충분히 유연하지 않습니다(예를 들면, \fBulimit\fP(1)을 사용하면 가상 메모리를
jpayne@68 91 제한하여 \fBmmap\fP(2)을 먹통으로 만듭니다).
jpayne@68 92 .PP
jpayne@68 93 메모리 사용 제한 기능은 \fB\-\-memlimit=\fP\fI<제한용량>\fP 명령행 옵션으로 사용할 수 있습니다. 종종
jpayne@68 94 \fBXZ_DEFAULTS=\-\-memlimit=150MiB\fP와 같이 \fBXZ_DEFAULTS\fP 환경 변수를 설정하여 제한 기능을 켜는게 더
jpayne@68 95 편합니다. \fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP 옵션과
jpayne@68 96 \fB\-\-memlimit\-decompress=\fP\fI<제한용량>\fP 옵션을 활용하여 압축 및 압축 해제시 별도로 한계 값을
jpayne@68 97 설정할 수 있습니다. 이 두 가지 옵션의 \fBXZ_DEFAULTS\fP 환경 변수 밖에서의 사용은, \fBxz\fP를 단일 실행할 때 압축 및
jpayne@68 98 압축 해제 동작을 동시에 수행하지 않으며, 앞서 언급한 두가지 옵션을 명령행에 입력하기에는
jpayne@68 99 \fB\-\-memlimit=\fP\fI<제한용량>\fP(또는 \fB\-M\fP \fI<제한용량>\fP)이 더 짧기 때문에 별로 쓸모가
jpayne@68 100 없습니다.
jpayne@68 101 .PP
jpayne@68 102 압축 해제시 메모리 사용 제한 지정 한계를 초과하면, \fBxz\fP 유틸리티에서 오류를 나타내며 파일 압축 해제는 실패합니다. 압축을
jpayne@68 103 실행할 때 사용 제한 지정 한계를 넘어서면 \fBxz\fP에서는 설정 값을 줄여서 어쨌든 한계를 넘지 못하게
jpayne@68 104 합니다(\fB\-\-format=raw\fP 옵션 또는 \fB\-\-no\-adjust\fP 옵션 사용시 제외). 설정 한계 값이 엄청 작지 않은 이상 이
jpayne@68 105 방식대로 처리하면 어쨌든 실패하지 않습니다. 설정 값조정은 압축 래벨 사전 설정과 일치하지 않을 때 단계적으로 진행하는데, 이를테면,
jpayne@68 106 \fBxz \-9\fP 명령 수행에 필요한 양보다 한계 값이 약간 작으면, 설정 값을 \fBxz \-8\fP에 못미치게 약간 줄여서 진행합니다.
jpayne@68 107 .
jpayne@68 108 .SS ".xz 파일 결합 및 패딩"
jpayne@68 109 \&\fB.xz\fP 파일을 있는 그대로 합칠 수 있습니다. \fBxz\fP는 \fB.xz\fP 파일을 단독 파일일 때 처럼 압축해제합니다.
jpayne@68 110 .PP
jpayne@68 111 결합 부분과 마지막 부분 뒤에 패딩을 추가할 수 있습니다. 패딩은 널 바이트로 구성해야 하며 패딩 길이는 4바이트로 구성해야 합니다.
jpayne@68 112 512 바이트 블록으로 파일 크기를 이루는 매체에 \fB.xz\fP 파일을 저장했을 경우에 요긴할 수 있습니다.
jpayne@68 113 .PP
jpayne@68 114 \&\fB.lzma\fP 파일 또는 원시 스트림의 경우 결합과 패딩을 허용하지 않습니다.
jpayne@68 115 .
jpayne@68 116 .SH 옵션
jpayne@68 117 .
jpayne@68 118 .SS "정수 접두사와 별도 값"
jpayne@68 119 정수 인자값이 필요한 대부분 위치에서는, 큰 정수값을 나타내기 쉽게 하도록 추가 접미사를 지원합니다. 정수와 접미사 사이에 어떤 공백이
jpayne@68 120 있으면 안됩니다.
jpayne@68 121 .TP
jpayne@68 122 \fBKiB\fP
jpayne@68 123 1,024 (2^10) 배수 정수값. \fBKi\fP, \fBk\fP, \fBkB\fP, \fBK\fP, \fBKB\fP 단위를 \fBKiB\fP 동의어로 받아들입니다.
jpayne@68 124 .TP
jpayne@68 125 \fBMiB\fP
jpayne@68 126 1,048,576 (2^20) 배수 정수값. \fBMi\fP, \fBm\fP, \fBM\fP, \fBMB\fP 단위를 \fBMiB\fP 동의어로 받아들입니다.
jpayne@68 127 .TP
jpayne@68 128 \fBGiB\fP
jpayne@68 129 1,073,741,824 (2^30) 배수 정수값. \fBGi\fP, \fBg\fP, \fBG\fP, \fBGB\fP 단위를 \fBGiB\fP 동의어로
jpayne@68 130 받아들입니다.
jpayne@68 131 .PP
jpayne@68 132 특수 값 \fBmax\fP는 옵션에서 지원하는 정수 최대 값을 나타낼 때 사용할 수 있습니다.
jpayne@68 133 .
jpayne@68 134 .SS "동작 모드"
jpayne@68 135 여러 동작 모드를 보여드리겠습니다만, 마지막에 주어진 동작 모드로 동작합니다.
jpayne@68 136 .TP
jpayne@68 137 \fB\-z\fP, \fB\-\-compress\fP
jpayne@68 138 압축합니다. 어떤 동작 모드 옵션도 지정하지 않고 다른 동작 모드를 명령행에 따로 지정하지 않았다면 이 동작 모드는 기본입니다(예:
jpayne@68 139 \fBunxz\fP 는 \fB\-\-decompress\fP를 암시).
jpayne@68 140 .IP ""
jpayne@68 141 .\" The DESCRIPTION section already says this but it's good to repeat it
jpayne@68 142 .\" here because the default behavior is a bit dangerous and new users
jpayne@68 143 .\" in a hurry may skip reading the DESCRIPTION section.
jpayne@68 144 After successful compression, the source file is removed unless writing to
jpayne@68 145 standard output or \fB\-\-keep\fP was specified.
jpayne@68 146 .TP
jpayne@68 147 \fB\-d\fP, \fB\-\-decompress\fP, \fB\-\-uncompress\fP
jpayne@68 148 .\" The DESCRIPTION section already says this but it's good to repeat it
jpayne@68 149 .\" here because the default behavior is a bit dangerous and new users
jpayne@68 150 .\" in a hurry may skip reading the DESCRIPTION section.
jpayne@68 151 Decompress. After successful decompression, the source file is removed
jpayne@68 152 unless writing to standard output or \fB\-\-keep\fP was specified.
jpayne@68 153 .TP
jpayne@68 154 \fB\-t\fP, \fB\-\-test\fP
jpayne@68 155 압축 \fI<파일>\fP의 무결성을 시험해봅니다. 이 옵션은 압축 해제 데이터를 표준 출력으로 기록하는 대신 버린다는 점을
jpayne@68 156 제외하고 \fB\-\-decompress \-\-stdout\fP과 동일합니다. 어떤 파일도 만들거나 제거하지 않습니다.
jpayne@68 157 .TP
jpayne@68 158 \fB\-l\fP, \fB\-\-list\fP
jpayne@68 159 압축 \fI<파일>\fP 정보를 출력합니다. 압축 해제 출력을 내보내지 않으며, 어떤 파일도 만들거나 제거하지 않습니다. 이
jpayne@68 160 조회 모드에서, 프로그램은 표준 입력 또는 기타 탐색 불가능한 원본에서 압축 데이터를 읽을 수 없습니다.
jpayne@68 161 .IP ""
jpayne@68 162 \fI<파일>\fP 기본 정보를 파일 당 한 줄 씩 기본으로 보여줍니다. 더 자세한 정보를 보려면 \fB\-\-verbose\fP
jpayne@68 163 옵션을 사용하십시오. 더 자세한 정보는 \fB\-\-verbose\fP 옵션을 두번 사용하면 되지만, 추가 정보를 더 많이 가져오면서 탐색
jpayne@68 164 횟수가 늘어나는 문제로 인해 느려질 수 있습니다. 세부 출력 너비는 80 문자를 초과하며, 예를 들어 출력을 파이핑한다면, 터미널이
jpayne@68 165 충분히 너비가 넓지 못할 경우 \fBless\ \-S\fP 명령이 편리할 수 있습니다.
jpayne@68 166 .IP ""
jpayne@68 167 정확한 출력은 \fBxz\fP 버전과 다른 로캘에 따라 바뀔 수 있습니다. 기계 판독용 출력시 \fB\-\-robot \-\-list\fP 옵션을
jpayne@68 168 사용합니다.
jpayne@68 169 .
jpayne@68 170 .SS "동작 수정자"
jpayne@68 171 .TP
jpayne@68 172 \fB\-k\fP, \fB\-\-keep\fP
jpayne@68 173 입력 파일을 삭제하지 않습니다.
jpayne@68 174 .IP ""
jpayne@68 175 \fBxz\fP 5.2.6 부터는 이 옵션으로 입력 파일이 일반 파일을 참조하는 심볼릭 링크나 하나 이상의 하드 링크, 내지는 setuid,
jpayne@68 176 setgid, 끈적이 비트 세트를 설정한 상태라도 압축하거나 압축을 풀 수 있습니다. setuid, setgid, 끈적이 비트는 대상
jpayne@68 177 파일에 복사하지 않습니다. 이전 버전에서는 \fB\-\-force\fP 옵션을 지정했을 때만 가능했습니다.
jpayne@68 178 .TP
jpayne@68 179 \fB\-f\fP, \fB\-\-force\fP
jpayne@68 180 이 옵션은 몇가지 동작에 영향을 줍니다:
jpayne@68 181 .RS
jpayne@68 182 .IP \(bu 3
jpayne@68 183 대상 파일이 이미 있으면, 압축 또는 압축 해제 전 삭제합니다.
jpayne@68 184 .IP \(bu 3
jpayne@68 185 입력 파일이 일반 파일을 참조하는 심볼릭 링크나 하나 이상의 하드 링크, 내지는 setuid, setgid, 끈적이 비트 세트를 설정한
jpayne@68 186 상태라도 압축 또는 압축 해제를 진행합니다. setuid, setgid, 끈적이 비트는 대상 파일에 복사하지 않습니다.
jpayne@68 187 .IP \(bu 3
jpayne@68 188 \fB\-\-decompress\fP \fB\-\-stdout\fP 옵션을 같이 사용하는 상황에서 \fBxz\fP 명령이 원본 파일의 형식을 알아내지 못할 때,
jpayne@68 189 원본 파일의 사본을 표준 출력으로 보냅니다. 이렇게 하면 \fBxzcat\fP \fB\-\-force\fP 명령을 \fBxz\fP 명령으로 압축하지 않은
jpayne@68 190 파일에 대해 \fBcat\fP(1) 을 사용하는 것처럼 사용할 수 있습니다. 참고로 나중에, \fBxz\fP에서 \fBxz\fP로 하여금 여러 형식의
jpayne@68 191 파일을 표준 출력으로 복사하는 대신 압축을 해제하도록 새 압축 파일 형식을 지원할 예정입니다.
jpayne@68 192 \fB\-\-format=\fP\fI<형식>\fP 옵션은 \fBxz\fP 명령에 단일 파일 형식만 압축 해제하도록 제한할 때 사용할 수
jpayne@68 193 있습니다.
jpayne@68 194 .RE
jpayne@68 195 .TP
jpayne@68 196 \fB\-c\fP, \fB\-\-stdout\fP, \fB\-\-to\-stdout\fP
jpayne@68 197 파일 대신 표준 출력으로 압축 또는 압축 해제한 데이터를 기록합니다. \fB\-\-keep\fP를 생략했습니다.
jpayne@68 198 .TP
jpayne@68 199 \fB\-\-single\-stream\fP
jpayne@68 200 처음 \fB.xz\fP 스트림만 압축 해제하며, 스트림에 뒤따라오는 나머지 입력 데이터는 조용히 무시합니다. 보통 뒤따라오는 쓰레기 값에
jpayne@68 201 대해서는 \fBxz\fP 에서 오류를 나타냅니다.
jpayne@68 202 .IP ""
jpayne@68 203 \fBxz\fP는 \fB.lzma\fP 파일 또는 원시 스트림에서 온 하나 이상의 스트림에 대해 압축 해제동작을 취하지 않지만, 이 옵션을 사용하면
jpayne@68 204 \fBxz\fP에서 \fB.lzma\fP 파일 또는 원시 스트림을 처리한 다음에 뒤따라오는 데이터를 무시하도록 합니다.
jpayne@68 205 .IP ""
jpayne@68 206 이 옵션은 동작 모드가 \fB\-\-decompress\fP 또는 \fB\-\-test\fP가 아니면 동작에 아무런 영향을 주지 않습니다.
jpayne@68 207 .TP
jpayne@68 208 \fB\-\-no\-sparse\fP
jpayne@68 209 희소 파일을 만들지 않습니다. 기본적으로 일반 파일로 압축 해제할 경우 \fBxz\fP 에서는 압축 해제한 파일에 이진 0값이 길게 늘어질
jpayne@68 210 경우 희소 배열 파일을 만들려고 합니다. 표준 출력의 내용 길이만큼 연결한 일반 파일로 기록할 때도 동작하며 희소 파일을 만드는 동안
jpayne@68 211 아무런 문제가 나타나지 않게 각각의 추가 조건을 만족합니다. 희소 파일을 만들면 디스크 공간을 절약할 수 있으며 디스크 입출력을 줄여
jpayne@68 212 압축 해제 속도를 올릴 수 있습니다.
jpayne@68 213 .TP
jpayne@68 214 \fB\-S\fP \fI.suf\fP, \fB\-\-suffix=\fP\fI.suf\fP
jpayne@68 215 압축할 때, 대상 파일의 접두사를 \fB.xz\fP 또는 \fB.lzma\fP 대신 \fI.suf\fP로 사용하십시오. 표준 출력으로 기록하지 않고
jpayne@68 216 원본 파일에 \fI.suf\fP 접두사가 붙어있으면, 경고를 나타내고 해당 파일을 건너뜁니다.
jpayne@68 217 .IP ""
jpayne@68 218 압축 해제할 때, \fI.suf\fP 접미사로 파일을 인식하기도 하고, \fB.xz\fP, \fB.txz\fP, \fB.lzma\fP, \fB.tlz\fP,
jpayne@68 219 \&\fB.lz\fP 접미사가 붙은 파일도 인식합니다. 원본 파일에 \fI.suf\fP 접미사가 붙어있으면, 해당 접미사를 제거하여 대상 파일 이름을
jpayne@68 220 알아냅니다.
jpayne@68 221 .IP ""
jpayne@68 222 원시 스트림 압축 및 압축 해제시(\fB\-\-format=raw\fP) 원시 스트림에 기본 접미사가 없기 때문에, 표준 출력으로 기록하지 않는
jpayne@68 223 한 접미사를 반드시 지정해야 합니다.
jpayne@68 224 .TP
jpayne@68 225 \fB\-\-files\fP[\fB=\fP\fI<파일>\fP]
jpayne@68 226 \fI<파일>\fP에서 처리할 파일 이름을 읽습니다. \fI<파일>\fP을 생략하면 파일 이름은 표준 입력에서
jpayne@68 227 불러옵니다. 파일 이름은 개행 문자로 끝나야 합니다. 대시 문자(\fB\-\fP)는 일반 파일 이름으로 취급하며 표준 입력을 의미하지
jpayne@68 228 않습니다. 파일 이름을 명령행 인자로 지정하면, \fI<파일>\fP에서 파일 이름을 읽어들이기 전 해당 명령행 인자를 먼저
jpayne@68 229 처리합니다.
jpayne@68 230 .TP
jpayne@68 231 \fB\-\-files0\fP[\fB=\fP\fI<파일>\fP]
jpayne@68 232 각 파일 이름이 널 문자로 끝나야 한다는 점만 제외하면 \fB\-\-files\fP[\fB=\fP\fI<파일>\fP] 옵션과 동일합니다.
jpayne@68 233 .
jpayne@68 234 .SS "기본 파일 형식 및 압축 옵션"
jpayne@68 235 .TP
jpayne@68 236 \fB\-F\fP \fIformat\fP, \fB\-\-format=\fP\fI<형식>\fP
jpayne@68 237 압축 또는 압축해제 파일 \fI<형식>\fP을 지정합니다:
jpayne@68 238 .RS
jpayne@68 239 .TP
jpayne@68 240 \fBauto\fP
jpayne@68 241 기본 값입니다. 압축할 때, \fBauto\fP는 \fBxz\fP의 기본 동작과 동일합니다. 압축을 해제할 때, 입력 파일 형식을 자동으로
jpayne@68 242 찾습니다. 참고로 원시 스트림(\fB\-\-format=raw\fP)의 경우 자동으로 찾을 수 없습니다.
jpayne@68 243 .TP
jpayne@68 244 \fBxz\fP
jpayne@68 245 \&\fB.xz\fP 파일 형식으로 압축하거나, 압축 해제시 \fB.xz\fP 파일만 받아들입니다.
jpayne@68 246 .TP
jpayne@68 247 \fBlzma\fP, \fBalone\fP
jpayne@68 248 이전 \fB.lzma\fP 파일 형식으로 압축하거나, 압축 해제시 \fB.lzma\fP 파일만 받아들입니다. \fBalone\fP 대체 명령은 LZMA
jpayne@68 249 유틸리티 하위 호환성을 목적으로 제공합니다.
jpayne@68 250 .TP
jpayne@68 251 \fBlzip\fP
jpayne@68 252 압축 해제시 \fB.lz\fP 파일만 받아들입니다. 압축은 지원하지 않습니다.
jpayne@68 253 .IP ""
jpayne@68 254 \&\fB.lz\fP 형식 버전 0과 비확장 버전 1을 지원합니다. 버전 0파일은 \fBlzip\fP 1.3 이전에서만 만듭니다. 일반적이진 않지만
jpayne@68 255 일부 파일의 경우 이 형식과 관련된 원본 패키지로 보관한 파일을 찾을 수도 있습니다. 개인적으로 이 형식으로 압축한 오래된 개인 파일을
jpayne@68 256 가지고 있을 수도 있습니다. 형식 버전 0 압축 해제 지원은 \fBlzip\fP 1.18에서 제거했습니다.
jpayne@68 257 .IP ""
jpayne@68 258 \fBlzip\fP 1.4 이상에서는 버전 1형식의 파일을 만듭니다. 형식 버전 1로의 동기화 제거 마커 확장은 \fBlzip\fP 1.6에
jpayne@68 259 추가했습니다. 이 확장은 거의 쓰지 않으며 \fBxz\fP 에서 조차도 지원하지 않습니다(손상된 입력 파일로 진단함).
jpayne@68 260 .TP
jpayne@68 261 \fBraw\fP
jpayne@68 262 원시 스트림으로 압축하거나 압축을 해제합니다(헤더 없음). 고급 사용자 전용입니다. 원시 스트림을 디코딩하려면,
jpayne@68 263 \fB\-\-format=raw\fP 옵션을 사용하고 분명하게 필터 체인을 지정하여 컨테이너 헤더에 필요한 정보를 저장하게 끔 해야합니다.
jpayne@68 264 .RE
jpayne@68 265 .TP
jpayne@68 266 \fB\-C\fP \fI<검사방식>\fP, \fB\-\-check=\fP\fI<검사방식>\fP
jpayne@68 267 무결성 검사 방식을 지정합니다. 검사 방식은 \fB.xz\fP 파일에 저장하며 압축 해제 데이터를 계산합니다. 이 옵션은 \fB.xz\fP
jpayne@68 268 형식으로 압축할 때만 효력이 있습니다: \fB.lzma\fP 형식은 무결성 겁사를 지원하지 않습니다. 무결성 검사는 \fB.xz\fP 파일 압축을
jpayne@68 269 풀었을 때에 검사합니다.
jpayne@68 270 .IP ""
jpayne@68 271 지원 \fI검사\fP 형식:
jpayne@68 272 .RS
jpayne@68 273 .TP
jpayne@68 274 \fBnone\fP
jpayne@68 275 어떤 경우에도 무결성 검사 계산을 수행하지 않습니다. 보통 바람직하지 못한 생각입니다. 데이터 무결성을 다른 방식으로라도 검증해야
jpayne@68 276 하는 상황이면 쓸만할 수 있습니다.
jpayne@68 277 .TP
jpayne@68 278 \fBcrc32\fP
jpayne@68 279 IEEE\-802.3 (이더넷)의 다항 연산으로 CRC32를 계산합니다.
jpayne@68 280 .TP
jpayne@68 281 \fBcrc64\fP
jpayne@68 282 ECMA\-182의 다항식 연산으로 CRC64를 계산합니다. 이 동작이 기본 동작이기 때문에 CRC32가 깨진 파일을 찾을 때보다는 좀
jpayne@68 283 낮은 편이며 속도 차이도 거의 없습니다.
jpayne@68 284 .TP
jpayne@68 285 \fBsha256\fP
jpayne@68 286 SHA\-256 해시를 계산합니다. CRC32와 CRC64 보다는 좀 느립니다.
jpayne@68 287 .RE
jpayne@68 288 .IP ""
jpayne@68 289 \&\fB.xz\fP 헤더 무결성은 항상 CRC32로 검증하빈다. 이를 바꾸거나 It is not possible to change or
jpayne@68 290 disable it.
jpayne@68 291 .TP
jpayne@68 292 \fB\-\-ignore\-check\fP
jpayne@68 293 압축 데이터를 압축해제할 경우 압축 데이터의 무결성 검증을 진행하지 않습니다. \fB.xz\fP 헤더의 CRC32 값은 그래도 여전히 보통
jpayne@68 294 방식으로 검증합니다.
jpayne@68 295 .IP ""
jpayne@68 296 \fB이 옵션이 정확히 무슨 동작을 하는지 알기 전에는 사용하지 마십시오.\fP 이 옵션을 사용하는 타당한 이유로:
jpayne@68 297 .RS
jpayne@68 298 .IP \(bu 3
jpayne@68 299 깨진 .xz 파일에서 데이터 복구를 시도합니다.
jpayne@68 300 .IP \(bu 3
jpayne@68 301 압축 해제 속도를 늘립니다. SHA\-256 또는 압축 파일에 들어간 그 무언가를 엄청 빨리 처리합니다. 다른 방식으로 파일 무결성을
jpayne@68 302 검증해야 하는 목적이 아니라면 이 옵션을 사용하지 않는게 좋습니다.
jpayne@68 303 .RE
jpayne@68 304 .TP
jpayne@68 305 \fB\-0\fP ... \fB\-9\fP
jpayne@68 306 압축 사전 설정 수준을 선택합니다. 기본값은 \fB\-6\fP입니다. 다중 수준을 지정하면 가장 마지막 수준 옵션을 적용합니다. 개별 필터
jpayne@68 307 체인을 이미 지정했다면, 압축 사전 설정 수준 값을 설정할 때 개별 필터 체인을 정리합니다.
jpayne@68 308 .IP ""
jpayne@68 309 사전 설정간 차이는 \fBgzip\fP(1)과 \fBbzip2\fP(1)을 사용할 때보다 더 비중을 차지합니다. 선택한 압축 설정은 압축 해제시
jpayne@68 310 필요한 메모리 사용량을 셜정하므로 사전 설정 수준 값을 너무 높게 지정하면 RAM 용량이 적은 오래된 시스템에서 파일 압축 해제시 실패할
jpayne@68 311 수 있습니다. 게다가, \fBgzip\fP(1) 과 \fBbzip2\fP(1)에서 처럼 종종 \fB모든 동작에 \-9를 몰래 활용하는건 바람직하지 않습니다\fP.
jpayne@68 312 .RS
jpayne@68 313 .TP
jpayne@68 314 \fB\-0\fP ... \fB\-3\fP
jpayne@68 315 동작이 빠른 사전 설정 부류입니다. \fB\-0\fP은 때로는 \fBgzip \-9\fP 명령보다 압축율이 훨씬 우수하면서도 더 빠릅니다. 더 큰
jpayne@68 316 값은 보통 \fBbzip2\fP(1) 명령과 비교했을 떄 압축 결과가 압축 데이터에 따라 달라지더라도, 비교할 법한 속도 또는 더 나은
jpayne@68 317 압축율을 보입니다.
jpayne@68 318 .TP
jpayne@68 319 \fB\-4\fP ... \fB\-6\fP
jpayne@68 320 오래된 시스템에서 조차도 압축 해제 프로그램의 적절한 메모리 사용량을 보이면서 양호하거나 최적의 압축율을 보여줍니다. \fB\-6\fP 옵션은
jpayne@68 321 압축 해제시 메모리 사용량이 16MiB 밖에 안되기 때문에 파일을 배포할 때 최적의 선택인 기본 값입니다. (\fB\-5e\fP 또는
jpayne@68 322 \fB\-6e\fP도 역시 고려할 만합니다. \fB\-\-extreme\fP을 참고하십시오.)
jpayne@68 323 .TP
jpayne@68 324 \fB\-7 ... \-9\fP
jpayne@68 325 \fB\-6\fP과 비슷하지만 압축 및 압축 해제시 요구 메모리 사용량이 더 높습니다. 압축 파일이 각각 8MiB, 16MiB, 32MiB
jpayne@68 326 보다 클 경우에만 쓸만한 옵션입니다.
jpayne@68 327 .RE
jpayne@68 328 .IP ""
jpayne@68 329 동일한 하드웨어에서, 압축 해제 속도는 압축한 데이터의 초당 정적 바이트 처리 수의 어림 평균입니다. 다시 말해, 압축율을 더 올리면,
jpayne@68 330 압축 해제 속도도 역시 올라갑니다. 이는 곧 초당 비압축 데이터 출력 양이 달라질 수 있단 뜻입니다.
jpayne@68 331 .IP ""
jpayne@68 332 다음 표에 사전 설정 기능을 정리했습니다:
jpayne@68 333 .RS
jpayne@68 334 .RS
jpayne@68 335 .PP
jpayne@68 336 .TS
jpayne@68 337 tab(;);
jpayne@68 338 c c c c c
jpayne@68 339 n n n n n.
jpayne@68 340 Preset;DictSize;CompCPU;CompMem;DecMem
jpayne@68 341 \-0;256 KiB;0;3 MiB;1 MiB
jpayne@68 342 \-1;1 MiB;1;9 MiB;2 MiB
jpayne@68 343 \-2;2 MiB;2;17 MiB;3 MiB
jpayne@68 344 \-3;4 MiB;3;32 MiB;5 MiB
jpayne@68 345 \-4;4 MiB;4;48 MiB;5 MiB
jpayne@68 346 \-5;8 MiB;5;94 MiB;9 MiB
jpayne@68 347 \-6;8 MiB;6;94 MiB;9 MiB
jpayne@68 348 \-7;16 MiB;6;186 MiB;17 MiB
jpayne@68 349 \-8;32 MiB;6;370 MiB;33 MiB
jpayne@68 350 \-9;64 MiB;6;674 MiB;65 MiB
jpayne@68 351 .TE
jpayne@68 352 .RE
jpayne@68 353 .RE
jpayne@68 354 .IP ""
jpayne@68 355 컬럼 설명:
jpayne@68 356 .RS
jpayne@68 357 .IP \(bu 3
jpayne@68 358 DictSize는 LZMA2 딕셔너리 크기입니다. 압축 해제 파일의 크기보다 딕셔너리에서 사용하는 낭비 메모리 용량입니다. 실제로
jpayne@68 359 필요하지 않은 \fB\-7\fP ... \fB\-9\fP 사전 설정값을 피해야 하는 적절한 이유이기도 합니다. \fB\-6\fP 이하에서는 소모 메모리 양이
jpayne@68 360 충분히 적거나 따로 신경쓸 필요가 없습니다.
jpayne@68 361 .IP \(bu 3
jpayne@68 362 CompCPU는 압축 속도에 영향을 주는 LZMA2 설정의 단순화 표기 값입니다. 딕셔너리 크기는 속도에도 영향을 주기 때문에
jpayne@68 363 CompCPU는 \fB\-6\fP ... \fB\-9\fP 수준값과 동일한데, 고수준 값은 여전히 조금 더 느려질 수 있습니다. 느려지는 만큼
jpayne@68 364 압축율은 가능한 한 더 좋아집니다. \fB\-\-extreme\fP을 참고하십시오.
jpayne@68 365 .IP \(bu 3
jpayne@68 366 CompMem은 단일\-스레드 모드에서 필요한 압축 프로그램의 메모리 점유 용량입니다. \fBxz\fP 버전에 따라 다를 수 있습니다.
jpayne@68 367 .IP \(bu 3
jpayne@68 368 DecMem은 압축 해제 프로그램의 메모리 점유용량입니다. 이는 곧, 압축 해제 프로그램에서 필요한 메모리 사용량을 압축 설정에서
jpayne@68 369 결정한다는 의미가 들어있습니다. 정확한 압축 해제 프로그램의 메모리 사용량은 LZMA2 딕셔너리 크기 보다는 조금 많지만 테이블의 값은
jpayne@68 370 MiB 용량으로 완전히 반올림한 값입니다.
jpayne@68 371 .RE
jpayne@68 372 .IP ""
jpayne@68 373 다중\-스레드 모드에서 필요한 메모리 용량은 단일\-스레드 모드보단 약간 더 많습니다. \fB\-\-block\-size\fP 기본값에 따라, 각
jpayne@68 374 스레드에서는 3*3*딕셔녀리_크기 + 압축시_메모리용량 또는 압축_해제시_메모리용량 정도가 필요합니다. 예를 들면, 스레드 넷에 사전
jpayne@68 375 설정 옵션 \fB\-6\fP을 사용한다면, 660\(en670 MiB 메모리 용량이 필요합니다.
jpayne@68 376 .TP
jpayne@68 377 \fB\-e\fP, \fB\-\-extreme\fP
jpayne@68 378 기대하는 만큼의 좀 더 나은 압축율을 확보하려 선택한 압축 사전 설정 수준의 느린 변형 옵션을 사용하지만, 재수 없는 와중에 골로 가는
jpayne@68 379 경우가 생기기도 합니다. 압축 해제 프로그램의 메모리 사용에는 영향을 주지 않지만, 압축 프로그램의 메모리 사용량은 \fB\-0\fP
jpayne@68 380 \&... \fB\-3\fP 사전 설정 수준에서 약간 더 올라갈 뿐입니다.
jpayne@68 381 .IP ""
jpayne@68 382 4MiB와 8MiB 두 가지 딕셔너리 용량 설정이 있기 때문에 \fB\-3e\fP 와 \fB\-5e\fP 사전 설정을 (CompCPU 수치를 낮춰서)
jpayne@68 383 각각 \fB\-4e\fP 와 \fB\-6e\fP 보다 약간 더 빠르게 설정할 수 있습니다. 이런 식으로 두 사전 설정이 동일하지 않습니다.
jpayne@68 384 .RS
jpayne@68 385 .RS
jpayne@68 386 .PP
jpayne@68 387 .TS
jpayne@68 388 tab(;);
jpayne@68 389 c c c c c
jpayne@68 390 n n n n n.
jpayne@68 391 Preset;DictSize;CompCPU;CompMem;DecMem
jpayne@68 392 \-0e;256 KiB;8;4 MiB;1 MiB
jpayne@68 393 \-1e;1 MiB;8;13 MiB;2 MiB
jpayne@68 394 \-2e;2 MiB;8;25 MiB;3 MiB
jpayne@68 395 \-3e;4 MiB;7;48 MiB;5 MiB
jpayne@68 396 \-4e;4 MiB;8;48 MiB;5 MiB
jpayne@68 397 \-5e;8 MiB;7;94 MiB;9 MiB
jpayne@68 398 \-6e;8 MiB;8;94 MiB;9 MiB
jpayne@68 399 \-7e;16 MiB;8;186 MiB;17 MiB
jpayne@68 400 \-8e;32 MiB;8;370 MiB;33 MiB
jpayne@68 401 \-9e;64 MiB;8;674 MiB;65 MiB
jpayne@68 402 .TE
jpayne@68 403 .RE
jpayne@68 404 .RE
jpayne@68 405 .IP ""
jpayne@68 406 예를 들면, 8MiB 딕셔너리를 활용하는 네가지 사전 설정이 있다고 할 때, 빠른 순으로 설정을 나열하자면, \fB\-5\fP, \fB\-6\fP,
jpayne@68 407 \fB\-5e\fP, \fB\-6e\fP 입니다.
jpayne@68 408 .TP
jpayne@68 409 \fB\-\-fast\fP
jpayne@68 410 .PD 0
jpayne@68 411 .TP
jpayne@68 412 \fB\-\-best\fP
jpayne@68 413 .PD
jpayne@68 414 이 옵션은 \fB\-0\fP 과 \fB\-9\fP의 별칭으로 각각 오해할 수 있습니다. LZMA 유틸리티의 하위 호환성을 목적으로 제공합니다. 이
jpayne@68 415 옵션 사용은 피하십시오.
jpayne@68 416 .TP
jpayne@68 417 \fB\-\-block\-size=\fP\fI<크기>\fP
jpayne@68 418 \&\fB.xz\fP 형식으로 압축할 때, 입력 데이터를 \fI<크기>\fP 바이트 블록으로 입력 데이터를 쪼갭니다. 각각의 블록은
jpayne@68 419 다중\-스레드 방식으로 처리할 수 있고 임의 접근 압축 해제 가능성을 제한할 수 있게 개별적으로 압축 처리합니다. 이 옵션은 보통
jpayne@68 420 다중\-스레드 모드에서 기본 블록 크기를 지정할 때 사용하지만, 단일\-스레드 모드에서도 사용할 수 있습니다.
jpayne@68 421 .IP ""
jpayne@68 422 다중\-스레드 모드에서는 약 3배 용량의 \fI<크기>\fP 바이트만큼 각 스레드 별로 입출력 버퍼링용 공간을 할당합니다. 기본
jpayne@68 423 \fI<크기>\fP는 LZMA2 딕셔너리 크기 또는 1MiB 중 가장 큰 쪽의 세 배입니다. 보통 적절한 값으로 LZMA2
jpayne@68 424 딕셔너리 크기 또는 최소한 1MiB 용량의 2\(en4배입니다. LZMA2 딕셔너리 크기보다 작은 \fI<크기>\fP는 램의
jpayne@68 425 소모적 사용 공간으로 할당하는데 LZMA2 딕셔너리 버퍼를 할당한 용량 크기 전체를 다 사용하지 않기 때문입니다. 다중\-스레드 모드에서
jpayne@68 426 블록 크기는 블록 헤더에 저장하며, 이 크기 정보는 다중\-스레드 압축 해제시 필요합니다.
jpayne@68 427 .IP ""
jpayne@68 428 단일\-스레드 모드에서는 기본적으로 블록 쪼개기를 하지 않습니다. 이 옵션을 설정한다고 해서 메모리 사용에 영향을 주지는 않습니다.
jpayne@68 429 블록 헤더에 크기 정보를 저장하지 않기 때문에 단일\-스레드 모드에서 만든 파일은 다중\-스레드 모드에서 만든 파일과 동일하지 않습니다.
jpayne@68 430 크기 정보의 누락은 또한 \fBxz\fP에서 다중\-스레드 모드로 압축 해제를 진행할 수 없음을 의미하기도 합니다.
jpayne@68 431 .TP
jpayne@68 432 \fB\-\-block\-list=\fP\fI<항목>\fP
jpayne@68 433 \&\fB.xz\fP 형식으로 압축할 때, 압축하지 않은 데이터로 부터 일정 간격 이후에 새 블록 처리를 시작합니다.
jpayne@68 434 .IP ""
jpayne@68 435 \fI<항목>\fP은 쉼표로 구분한 목록으로 지정합니다. 각 항목은 콜론 (\fB:\fP)으로 구분한 0부터 9까지의 추가 필터
jpayne@68 436 체인 번호 값으로 이루어져 있으며, 압축하지 않은 데이터의 크기 값이 필요합니다. 항목을 생략하면(둘 이상의 쉼표 연속 표기) 이전
jpayne@68 437 항목의 크기와 필터를 활용하겠다는 함축 의미를 넣을 수 있습니다.
jpayne@68 438 .IP ""
jpayne@68 439 입력 파일이 \fI<항목>\fP 크기의 합보다 크면, 마지막 항목을 파일의 끝까지 반복합니다. 특별히 \fB0\fP 값을 마지막
jpayne@68 440 값으로 사용하여 파일 나머지 부분을 단일 블록으로 인코딩해야 한다는 의미를 나타낼 수도 있습니다.
jpayne@68 441 .IP ""
jpayne@68 442 \fB\-\-filters1=\fP\fI<필터>\fP \&...\& \fB\-\-filters9=\fP\fI<필터>\fP 옵션 조합으로
jpayne@68 443 각 블록별 별도 필터 체인을 지정할 수 있습니다. 이 옵션은 1\(en9번 필터 체인을 지정합니다. 필터 체인 0번은 필터 체인을
jpayne@68 444 지정하지 않았을 때와 동일한 기본 필터 체인으로 참조할 수 있습니다. 필터 체인 식별 번호는 비 압축 크기 앞에 콜론(\fB:\fP)을 붙여
jpayne@68 445 사용할 수 있습니다. 예를 들면, \fB\-\-block\-list=1:2MiB,3:2MiB,2:4MiB,,2MiB,0:4MiB\fP 옵션을
jpayne@68 446 지정했을 경우 다음 규칙대로 블록을 만듭니다:
jpayne@68 447 .RS
jpayne@68 448 .IP \(bu 3
jpayne@68 449 \fB\-\-filters1\fP 필터 체인에서는 2MiB 입력을
jpayne@68 450 .IP \(bu 3
jpayne@68 451 \fB\-\-filters3\fP 필터 체인에서는 2MiB 입력을
jpayne@68 452 .IP \(bu 3
jpayne@68 453 \fB\-\-filters2\fP 필터 체인에서는 4MiB 입력을
jpayne@68 454 .IP \(bu 3
jpayne@68 455 \fB\-\-filters2\fP 필터 체인에서는 4MiB 입력을
jpayne@68 456 .IP \(bu 3
jpayne@68 457 기본 필터 체인에서는 2MiB 입력을
jpayne@68 458 .IP \(bu 3
jpayne@68 459 입력이 끝나기 전의 모든 블록에는 기본 필터 체인과 4MiB 입력을 적용합니다.
jpayne@68 460 .RE
jpayne@68 461 .IP ""
jpayne@68 462 인코더 블록 크기를 초과하는 크기 값을 지정하면(스레드 모드 기본값 또는 \fB\-\-block\-size=\fP\fI<크기>\fP
jpayne@68 463 옵션으로 지정한 값), 인코더는 \fI<크기>\fP 지정 용량 범위는 유지하면서 추가 블록을 만듭니다. 예를 들면
jpayne@68 464 \fB\-\-block\-size=10MiB\fP \fB\-\-block\-list=5MiB,10MiB,8MiB,12MiB,24MiB\fP 옵션을 지정하고
jpayne@68 465 입력 파일을 80MiB 용량으로 전달하면, 각각 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, 1 MiB 용량을
jpayne@68 466 차지하는 블록 11개를 결과물로 내줍니다.
jpayne@68 467 .IP ""
jpayne@68 468 다중\-스레드 모드에서 블록 크기는 블록 헤더에 저장합니다. 단일\-스레드 모드에서는 저장하지 않기 때문에 인코딩 처리한 출력은
jpayne@68 469 다중\-스레드 모드의 출력 결과물과는 다릅니다.
jpayne@68 470 .TP
jpayne@68 471 \fB\-\-flush\-timeout=\fP\fI<제한시간>\fP
jpayne@68 472 압축할 때, 이전 데이터를 소거하고 다음 입력을 블록 단위로 더 읽는데 \fI<제한시간>\fP 밀리초(양의 정수값)가 지났을
jpayne@68 473 경우, 대기중이던 모든 입력 데이터를 인코더에서 소거한 다음 출력 스트림에 전달합니다. 이런 동작은 네트워크로 스트리밍한 데이터를
jpayne@68 474 \fBxz\fP로 압축할 때 쓸만합니다. \fI<제한시간>\fP 값을 적게 지정하면 적은 지연 시간에 데이터를 받아낼 수 있지만
jpayne@68 475 \fI<제한시간>\fP 값을 크게 하면 압축율을 높일 수 있습니다.
jpayne@68 476 .IP ""
jpayne@68 477 이 기능은 기본적으로 꺼져있습니다. 이 옵션을 한번 이상 지정하면, 마지막 옵션의 값대로 동작합니다. 특별히
jpayne@68 478 \fI<제한시간>\fP 값을 \fB0\fP으로 설정하면 이 설정을 완전히 끌 수 있습니다.
jpayne@68 479 .IP ""
jpayne@68 480 이 기능은 POSIX 시스템이 아닌 곳에서는 사용할 수 없습니다.
jpayne@68 481 .IP ""
jpayne@68 482 .\" FIXME
jpayne@68 483 \fB이 기능은 여전히 시험중입니다\fP. 현재로서는, \fBxz\fP 버퍼링 처리 방식 때문에 \fBxz\fP의 실시간 스트림 압축 해제 기능 활용은
jpayne@68 484 적절하지 않습니다.
jpayne@68 485 .TP
jpayne@68 486 \fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP
jpayne@68 487 압축 수행시 메모리 사용 한계를 지정합니다. 이 옵션을 여러번 지정하면 마지막 값을 취합니다.
jpayne@68 488 .IP ""
jpayne@68 489 압축 설정이 \fI<제한용량>\fP을 초과하면, \fBxz\fP는 설정 값의 하향 조정을 시도하여 한계 값을 더이상 넘치지 않게 하고
jpayne@68 490 자동 조절을 끝냈다는 알림을 표시합니다. 조정은 다음 순서대로 진행합니다. 스레드 수를 줄입니다. 다중\-스레드 모드에서 스레드 하나의
jpayne@68 491 할당 한계치가 \fI<제한용량>\fP을 넘으면 단일\-스레드 모드로 전환합니다. 그 다음 마지막으로 LZMA2 딕셔너리 크기를
jpayne@68 492 줄입니다.
jpayne@68 493 .IP ""
jpayne@68 494 \fB\-\-format=raw\fP 또는 \fB\-\-no\-adjust\fP 미지정 상황에서 압축할 때, 압축 데이터 출력에 영향을 주지 않고 스레드
jpayne@68 495 처리 수만 줄일 수 있습니다.
jpayne@68 496 .IP ""
jpayne@68 497 \fI<제한용량>\fP 값이 아래 설명한 조건에 맞지 않으면, 오류가 나타나고 \fBxz\fP 명령은 종료 상태 1번을 반환하며
jpayne@68 498 빠져나갑니다.
jpayne@68 499 .IP ""
jpayne@68 500 \fI<제한용량>\fP 값은 여러 방식으로 지정할 수 있습니다:
jpayne@68 501 .RS
jpayne@68 502 .IP \(bu 3
jpayne@68 503 \fI<제한용량>\fP 값은 바이트 용량 절대값입니다. 정수 값을 사용하되 \fBMiB\fP와 같은 접미사를 사용하는게 좋습니다.
jpayne@68 504 예: \fB\-\-memlimit\-compress=80MiB\fP
jpayne@68 505 .IP \(bu 3
jpayne@68 506 \fI<제한용량>\fP 값은 총 물리 메모리(RAM) 용량의 백분율로 지정할 수도 있습니다. 다른 컴퓨터끼리 공유하는 셸
jpayne@68 507 초기화 스크립트의 \fBXZ_DEFAULTS\fP 환경 변수에 값을 설정할 때 특히 쓸만합니다. 이런 방식으로 설정하면 시스템의 메모리 설치
jpayne@68 508 용량에 따라 자동으로 늘어납니다. 예: \fB\-\-memlimit\-compress=70%\fP
jpayne@68 509 .IP \(bu 3
jpayne@68 510 \fI<제한용량>\fP 값은 \fB0\fP 기본값으로 설정하여 초기화할 수 있습니다. 현재로서는 \fI<제한용량>\fP
jpayne@68 511 값이 \fImax\fP(최대) (메모리 사용 한계 없음) 인 상태와 동일합니다.
jpayne@68 512 .RE
jpayne@68 513 .IP ""
jpayne@68 514 \fBxz\fP 32비트 버전에서는 몇가지 특별한 경우가 있습니다. \fI<제한용량>\fP 값이 \fB4020MiB\fP를 넘으면
jpayne@68 515 \fI<제한용량>\fP을 \fB4020MiB\fP로 고정합니다. MIPS32에서는 \fB2000MiB\fP로 대신 고정합니다.
jpayne@68 516 (\fB0\fP과 \fBmax\fP는 이 경우에 해당하지 않습니다. 압축 해제시 비슷한 기능은 없습니다.) 이 경우 32비트 실행 파일이
jpayne@68 517 4GiB(MIPS32의 경우 2GiB) 주소 영역에 접근할 때 매우 용이하며, 다른 경우에는 원하는대로 문제를 일으키지 않습니다.
jpayne@68 518 .IP ""
jpayne@68 519 \fB메모리 활용\fP 섹션도 참고하십시오.
jpayne@68 520 .TP
jpayne@68 521 \fB\-\-memlimit\-decompress=\fP\fI<제한용량>\fP
jpayne@68 522 압축 해제시 메모리 사용 한계 용량을 설정합니다. \fB\-\-list\fP 모드에도 영향을 줍니다. \fI<제한용량>\fP을 넘기지
jpayne@68 523 않고서는 동작이 진행이 안될 경우, \fBxz\fP 에서는 오류를 나타내고 파일 압축 해제를 실패로
jpayne@68 524 간주합니다. \fI<제한용량>\fP을 지정하는 가능한 방법에 대해서는
jpayne@68 525 \fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP 옵션을 참고하십시오.
jpayne@68 526 .TP
jpayne@68 527 \fB\-\-memlimit\-mt\-decompress=\fP\fI<제한용량>\fP
jpayne@68 528 다중\-스레드 모드 압축 해제시 메모리 사용 한계 용량을 설정합니다. 스레드 수에 영향을 줄 수도 있습니다. \fBxz\fP에서 파일 압축
jpayne@68 529 해제를 거부하게 하진 않습니다. \fI<제한용량>\fP 수치가 다중\-스레드로 처리하기에 너무 낮다면,
jpayne@68 530 \fI<제한용량>\fP 값을 무시하고 \fBxz\fP 동작을 단일\-스레드 모드로 계속 진행합니다. 참고로
jpayne@68 531 \fB\-\-memlimit\-decompress\fP 옵션도 사용하면, 단일\-스레드 모드와 다중\-스레드 모드 두 경우에 모두 적용하기에,
jpayne@68 532 다중\-스레드 모드에 적용할 \fI<제한용량>\fP 값은 \fB\-\-memlimit\-decompress\fP에 설정하는 제한 값보다 더
jpayne@68 533 크면 안됩니다.
jpayne@68 534 .IP ""
jpayne@68 535 다른 메모리 사용 용량 제한 옵션과는 달리, \fB\-\-memlimit\-mt\-decompress=\fP\fI<제한용량>\fP 옵션은
jpayne@68 536 시스템별 기본 \fI<제한용량>\fP 값을 지닙니다. 현재 설정 값은 \fBxz \-\-info\-memory\fP 명령으로 확인해볼 수
jpayne@68 537 있습니다.
jpayne@68 538 .IP ""
jpayne@68 539 이 옵션과 기본 값은 한계 값을 주지 않으면 스레드 기반 압축 해제 프로그램이 일부 입력 파일에 대해 정신나간 수준의 메모리 용량을
jpayne@68 540 할당해서 동작이 끝나버릴 수 있습니다. 기본 \fI<제한용량>\fP이 시스템의 사양에 비해 낮다면,
jpayne@68 541 \fI<제한용량>\fP 값을 자유롭게 올리시되, \fBxz\fP 에서 적은 스레드 수에도 메모리 공간 할당을 시도하는 만큼, 입력
jpayne@68 542 파일에 적절한 수준으로 가용 RAM 용량을 넘는 큰 값을 설정하지 마십시오. 메모리나 스와핑 영역 공간이 줄어들면 압축해제 성능을
jpayne@68 543 개선하지 못합니다.
jpayne@68 544 .IP ""
jpayne@68 545 \fI<제한용량>\fP 값을 지정하는 가능한 방법을 보려면
jpayne@68 546 \fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP 옵션을 참고하십시오. \fI<제한용량>\fP 값을
jpayne@68 547 \fB0\fP으로 설정하면 \fI<제한용량>\fP 값이 시스템 지정 기본값으로 바뀝니다.
jpayne@68 548 .TP
jpayne@68 549 \fB\-M\fP \fI<제한용량>\fP, \fB\-\-memlimit=\fP\fI<제한용량>\fP, \fB\-\-memory=\fP\fI<제한용량>\fP
jpayne@68 550 \fB\-\-memlimit\-compress=\fP\fI<제한용량>\fP
jpayne@68 551 \fB\-\-memlimit\-decompress=\fP\fI<제한용량>\fP
jpayne@68 552 \fB\-\-memlimit\-mt\-decompress=\fP\fI<제한용량>\fP 지정과 동일합니다.
jpayne@68 553 .TP
jpayne@68 554 \fB\-\-no\-adjust\fP
jpayne@68 555 압축 출력 결과에 영향을 주는 설정을 조정하지 않고는 메모리 사용 용량 제한 조건이 맞지 않으면 오류를 표시하고 빠져나갑니다. 이
jpayne@68 556 옵션은 \fBxz\fP가 다중\-스레드 모드에서 단일\-스레드 모드로 전환하고 LZMA2 딕셔너리 크기를 줄이는 동작을 막아줍니다. 심지어 이
jpayne@68 557 옵션을 사용하면 메모리 사용 한계를 만족하도록 스레드 수를 줄여 압축 결과물 출력에 영향이 가지 않게 합니다.
jpayne@68 558 .IP ""
jpayne@68 559 원시 스트림(\fB\-\-format=raw\fP)을 만들 떄 자동 조정은 항상 꺼집니다.
jpayne@68 560 .TP
jpayne@68 561 \fB\-T\fP \fI<스레드수>\fP, \fB\-\-threads=\fP\fI<스레드수>\fP
jpayne@68 562 활용할 작업 스레드 수를 지정합니다. \fI<스레드수>\fP 값을 \fB0\fP 값으로 설정하면, \fBxz\fP는 시스템에서 지원하는
jpayne@68 563 최대 프로세서 스레드 수를 모두 확보합니다. 실제 스레드 수는 입력 파일이 주어진 설정대로 스레드 처리를 할 만큼 그렇게 크지 않을
jpayne@68 564 경우, 내지는 더 많은 스레드를 사용했을 때 메모리 사용량 한계를 초과할 경우 \fI<스레드수>\fP 보다 적을 수 있습니다.
jpayne@68 565 .IP ""
jpayne@68 566 단일\-스레드와 다중\-스레드 압축 프로그램은 다른 출력 결과물을 냅니다. 단일\-스레드 압축 프로그램은 작은 파일 크기 결과물을 내놓지만,
jpayne@68 567 다중\-스레드 압축 프로그램의 경우 다중\-스레드 압축 프로그램에서 내놓은 결과물은 다중\-스레드로만 압축을 해제할 수 있습니다.
jpayne@68 568 \fI<스레드수>\fP를 \fB1\fP로 설정하면 단일\-스레드 모드를 사용합니다. \fI<스레드수>\fP를 \fB0\fP과 다른
jpayne@68 569 값으로 설정하면, 시스템에서 실제로 하드웨어 스레드가 1개만 지원한다 하더라도, 다중\-스레드 압축 프로그램을 사용합니다. (\fBxz\fP
jpayne@68 570 5.2.x에서는 이 경우 단일\-스레드 모드를 활용합니다.)
jpayne@68 571 .IP ""
jpayne@68 572 단일\-스레드로 다중\-스레드 모드를 사용하려면, \fI<스레드수>\fP를 \fB+1\fP로 설정하십시오. \fB+\fP 접두사는 \fB1\fP
jpayne@68 573 이외의 값에는 영향을 주지 않습니다. 메모리 사용량 한계 설정은 \fBxz\fP을 \fB\-\-no\-adjust\fP 옵션을 쓰기 전까지는
jpayne@68 574 단일\-스레드로 전환하게 합니다. \fB+\fP 접두사 지원은 \fBxz\fP 5.4.0에 추가했습니다.
jpayne@68 575 .IP ""
jpayne@68 576 자동 스레드 수를 요청했고 메모리 사용 한계를 지정하지 않았다면, 시스템에 맞게끔 가능한 스레드 수를 제한하는 기본 소프트 제한 값을
jpayne@68 577 사용합니다. 스레드 수가 한개가 되면 무시하는 이런 개념이 소프트 제한이기에, \fBxz\fP로 하여금 압축 동작 및 압축 해제 동작 수행시
jpayne@68 578 멈추지 않습니다. 이 가본 소프트 제한 값은 \fBxz\fP 실행 도중 다중\-스레드 모드에서 단일\-스레드 모드로 바뀌게 하지는 않습니다.
jpayne@68 579 활성 제한 값은 \fBxz \-\-info\-memory\fP 명령으로 볼 수 있습니다.
jpayne@68 580 .IP ""
jpayne@68 581 현재 스레딩 처리 방식은 입력을 블록 단위로 쪼개고 각각의 블록을 독립적으로 압축하는 동작을 취합니다. 기본 블록 크기는 압축 수준에
jpayne@68 582 따라 다르며 \fB\-\-block\-size=\fP\fI<크기>\fP 옵션으로 재지정할 수 있습니다.
jpayne@68 583 .IP ""
jpayne@68 584 스레드 압축 해제 방식은 여러 블록이 블록 헤더에 넣은 크기 정보와 함께 들어간 파일에만 동작합니다. 다중\-스레드 모드에서 압축한
jpayne@68 585 충분히 큰 모든 파일은 이 조건에 만족하지만, 단일\-스레드 모드에서 압축한 파일은
jpayne@68 586 \fB\-\-block\-size=\fP\fI<크기>\fP 옵션을 지정하더라도 조건에 만족하지 않습니다.
jpayne@68 587 .IP ""
jpayne@68 588 \fI스레드\fP 기본 값은 \fB0\fP입니다. \fBxz\fP 5.4.x 이전의 기본값은 \fB1\fP입니다.
jpayne@68 589 .
jpayne@68 590 .SS "개별 압축 필터 체인 설정"
jpayne@68 591 개별 필터 체인은 사전 설정에 엮인 설정에 의존하는 대신 압축 설정을 세부적으로 하나하나 설정할 수 있게 합니다. 개별 필터 체인을
jpayne@68 592 지정하면, 명령행에 앞서 지정한 사전 설정 옵션(\fB\-0\fP \&...\& \fB\-9\fP 과 \fB\-\-extreme\fP)은 무시합니다. 사전
jpayne@68 593 설정 옵션을 하나 이상의 필터 체인 옵션 다음에 지정하면, 새 사전 설정을 취하며, 앞서 지정한 개별 필터 체인 옵션은 무시합니다.
jpayne@68 594 .PP
jpayne@68 595 필터 체인은 명령행 파이핑에 비교할 수 있습니다. 압축할 때, 압축하지 않은 입력을 첫번째 필터로 놓고, 출력 대상(이 있으면)을 다음
jpayne@68 596 필터로 지정합니다. 최종 필터의 출력은 압축 파일로 기옥합니다. 체인의 최대 필터 수는 4이지만, 필터 체인상 필터 갯수는 보통
jpayne@68 597 1~2개입니다.
jpayne@68 598 .PP
jpayne@68 599 수많은 필터가 필터 체인 상에서 제약점을 가지고 있습니다. 일부 필터는 체인의 마지막 필터로만 동작하며, 일부 다른 필터는 마지막이 아닌
jpayne@68 600 필터로, 어떤 동작은 체인의 어떤 위치에든 둡니다. 필터에 따라, 이 제한은 필터 설계를 따르거나 보안 문제를 막기 위해 존재하기도
jpayne@68 601 합니다.
jpayne@68 602 .PP
jpayne@68 603 개별 필터 체인은 두가지 방식으로 지정할 수 있습니다. \fB\-\-filters=\fP\fI<필터>\fP와
jpayne@68 604 \fB\-\-filters1=\fP\fI<필터>\fP \&...\& \fB\-\-filters9=\fP\fI<필터>\fP 옵션으로
jpayne@68 605 liblzma 필터 문자열 문법에 따라 한가지 옵션을 필터 체인 전체를 지정할 수 있습니다. 대신, 하나 이상의 개별 필터 옵션을
jpayne@68 606 원하는 필터 체인 순서대로 지정할 수도 있습니다. 이 말인 즉슨, 개별 필터 옵션의 순서가 중요하단 뜻입니다! 원시 스트림을 디코딩할
jpayne@68 607 때(\fB\-\-format=raw\fP), 압축했을 때 지정했던 필터와 같은 순서로 필터 체인을 지정해야 합니다. 전체 체인
jpayne@68 608 옵션(\fB\-\-filters=\fP\fI<필터>\fP) 보다 우선 지정한 개별 필터 또는 사전 설정 옵션은 까먹을 수도 있습니다.
jpayne@68 609 전체 체인 옵션 다음에 개별 필터를 지정할 경우 필터 체인의 동작을 무효로 합니다.
jpayne@68 610 .PP
jpayne@68 611 필터는 쉼표로 구분하는 필터별 \fI<옵션>\fP이 있습니다. \fI<옵션>\fP에 추가로 입력한 쉼표는
jpayne@68 612 무시합니다. 모든 옵션 값에는 기본값이 있어, 값을 바꾸려면 지정해야합니다.
jpayne@68 613 .PP
jpayne@68 614 전체 필터 체인과 \fI<옵션>\fP을 보려면 \fBxz \-vv\fP (\fB\-\-verbose\fP 두 번)명령을 사용하십시오. 이
jpayne@68 615 명령은 사전 설정이 사용하는 필터 체인 옵션도 볼 수 있습니다.
jpayne@68 616 .TP
jpayne@68 617 \fB\-\-filters=\fP\fI<필터>\fP
jpayne@68 618 전체 필터 체인 또는 사전 설정을 단일 옵션으로 지정합니다. 각 필터는 공백 문자 또는 대시 문자 두번 입력(\fB\-\-\fP)으로
jpayne@68 619 구분합니다. 셸 명령행에서 \fI필터\fP는 따옴표로 감싸서 단일 옵션으로 해석하도록 해야 합니다. \fI옵션\fP을 표기하려면 \fB:\fP 또는
jpayne@68 620 \fB=\fP을 활용하십시오. 사전 설정 앞에 \fB\-\fP를 붙일 수 있고 0개 또는 하나 이상의 플래그를 붙일 수 있습니다. 유일하게
jpayne@68 621 지원하는 플래그는 \fB\-\-extreme\fP과 동일한 \fBe\fP입니다.
jpayne@68 622 .TP
jpayne@68 623 \fB\-\-filters1\fP=\fI<필터>\fP ... \fB\-\-filters9\fP=\fI<필터>\fP
jpayne@68 624 \fB\-\-block\-list\fP와 사용할 수 있는 추가 필터 체인을 최대 9개까지 지정합니다.
jpayne@68 625 .IP ""
jpayne@68 626 예를 들어 텍스트 파일과 실행 파일의 아카이브를 압축할 때 실행 부분에 BCJ 필터 체인을 사용하고 텍스트 부분은 LZMA2 필터를
jpayne@68 627 사용할 수 있습니다.
jpayne@68 628 .TP
jpayne@68 629 \fB\-\-filters\-help\fP
jpayne@68 630 \fB\-\-filters\fP와 \fB\-\-filters1=\fP\fI<필터>\fP \&...\&
jpayne@68 631 \fB\-\-filters9=\fP\fI<필터>\fP 옵션의 사전 설정 필터와 개별 설정 필터 체인을 지정하는 방법을 설명하는 도움말
jpayne@68 632 메시지를 출력하고 완전히 빠져나갑니다.
jpayne@68 633 .TP
jpayne@68 634 \fB\-\-lzma1\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 635 .PD 0
jpayne@68 636 .TP
jpayne@68 637 \fB\-\-lzma2\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 638 .PD
jpayne@68 639 LZMA1 또는 LZMA2 필터를 필터 체인에 추가합니다. 이 필터는 필터 체인의 마지막 요소로만 사용할 수 있습니다.
jpayne@68 640 .IP ""
jpayne@68 641 LZMA1은 고전 필터로, LZMA1만 지원하는 고전 \fB.lzma\fP 파일 형식에서만 지원합니다. LZMA2는 LZMA1의 업데이트
jpayne@68 642 버전으로 LZMA1의 실질적 문제를 해결했습니다. \fB.xz\fP 형식은 LZMA2 필터를 사용하며 LZMA1 필터는 전적으로 지원하지
jpayne@68 643 않습니다. 압축 속도와 압축율은 LZMA1과 LZMA2가 실질적으로 동일합니다.
jpayne@68 644 .IP ""
jpayne@68 645 LZMA1과 LZMA2는 동일한 \fI<옵션>\fP 집합을 공유합니다:
jpayne@68 646 .RS
jpayne@68 647 .TP
jpayne@68 648 \fBpreset=\fP\fI<사전설정>\fP
jpayne@68 649 LZMA1 또는 LZMA2의 모든 \fI<옵션>\fP을 \fI<사전설정>\fP으로
jpayne@68 650 초기화합니다. \fI<사전설정>\fP 값은 정수 값으로 이루어져 있으며, 사전 설정에 변형을 줄 떄 단일 문자가 따라올 수도
jpayne@68 651 있습니다. 정수 값은 \fB0\fP에서 \fB9\fP 까지이며, 명령행 옵션에서 \fB\-0\fP \&...\& \fB\-9\fP로 대응합니다. 변형 옵션으로
jpayne@68 652 지원하는 문자는 현재 \fBe\fP 뿐이며, \fB\-\-extreme\fP에 대응합니다. \fI<사전설정>\fP 값을 지정하지 않으면,
jpayne@68 653 LZMA1 또는 LZMA2 기본값을 사전 설정 \fB6\fP에서 가져온 \fI<옵션>\fP으로 취합니다.
jpayne@68 654 .TP
jpayne@68 655 \fBdict=\fP\fI<크기>\fP
jpayne@68 656 딕셔너리(기록 버퍼) \fI<크기>\fP는 최근 처리한 비압축 데이터를 바이트 단위로 메모리에 얼마나 유지하는지 나타냅니다.
jpayne@68 657 알고리즘은 비압축 데이터상 바이트 시퀀스(일치 항목) 반복 탐색을 시도하며, 해당 부분을 딕셔너리의 현재 참조로 치환합니다. 딕셔너리가
jpayne@68 658 크면 일치하는 항목을 찾을 기회가 더 많아집니다. 따라서, 딕셔너리 \fI<크기>\fP를 더욱 크게 설정하면 압축율을 증가할
jpayne@68 659 수는 있지만, 압축하지 않은 파일보다 딕셔너리가 크면 메모리 낭비율이 올라갑니다.
jpayne@68 660 .IP ""
jpayne@68 661 보통 딕셔너리 \fI<크기>\fP는 64KiB 에서 64MiB 정도 됩니다. 최소 4KiB 입니다. 압축시 최대 용량은 현재
jpayne@68 662 1.5GiB(1536MiB)로 나타납니다. 압축 해제 프로그램에도 4GiB 미만으로 딕셔너리 크기를 이미 지원하며 4GiB 라는 수치는
jpayne@68 663 LZMA1과 LZMA2 스트림 형식의 최대값입니다.
jpayne@68 664 .IP ""
jpayne@68 665 딕셔너리 \fI<크기>\fP와 검색기(\fImf\fP)는 LZMA1 또는 LZMA 인코더의 메모리 사용량을 함께 결정합니다.
jpayne@68 666 동일한(또는 더 큰) 딕셔너리 \fI<크기>\fP가 데이터를 압축했을 때만큼 압축 해제할 떄 필요하기 때문에, 디코더의 메모리
jpayne@68 667 사용량은 압축할 때의 딕셔너리 크기로 결정합니다. \fB.xz\fP 헤더에는 딕셔너리 \fI<크기>\fP를 2^\fIn\fP 또는
jpayne@68 668 2^\fIn\fP + 2^(\fIn\fP\-1) 으로 저장하기에, 이 \fI<크기>\fP 값을 압축할 때 선호하는 편입니다. 다른
jpayne@68 669 \fI<크기>\fP 값은 \fB.xz\fP 헤더에 저장할 때 반올림합니다.
jpayne@68 670 .TP
jpayne@68 671 \fBlc=\fP\fIlc\fP
jpayne@68 672 리터럴 컨텍스트 비트 수를 지정합니다. 최소 값은 0이고 최대 값은 4입니다. 기본 값은 3입니다. 추가로, \fIlc\fP 값과
jpayne@68 673 \fIlp\fP 값의 합은 4를 넘으면 안됩니다.
jpayne@68 674 .IP ""
jpayne@68 675 조건이 일치하지 않아 인코딩할 수 없는 모든 바이트는 리터럴로 인코딩합니다. 이 말인 즉슨, 간단히 8비트 바이트로서의 리터럴을 한번에
jpayne@68 676 하나씩 인코딩합니다.
jpayne@68 677 .IP ""
jpayne@68 678 리터럴 코딩을 할 때 이전 비압축 바이트와 다음 바이트와의 관련성을 가진 가장 많은 \fIlc\fP 비트 수를 가정합니다. 예를 들면, 보통
jpayne@68 679 영문 문장의 경우 대문자 다음에 종종 소문자가 오고, 소문자 다음에 다른 소문자가 따라옵니다. US\-ASCII 문자 세트에서는 가장 긴
jpayne@68 680 비트 3개는 대문자에 대해 010, 소문자에 대해 011입니다. \fIlc\fP 값이 최소한 3이면, 리터럴 코딩시 비압축 데이터에 대해
jpayne@68 681 이런 속성의 장점을 취할 수 있습니다.
jpayne@68 682 .IP ""
jpayne@68 683 (어쨌거나) 기본값 (3)은 보통 적절합니다. 최대 압축을 원한다면 \fBlc=4\fP 값을 시험해보십시오. 때로는 약간 도움이 되기도
jpayne@68 684 하겠지만, 오히려 결과가 안좋을 수도 있습니다. 결과가 엄한 방향으로 간다면, \fBlc=2\fP 값도 시험해보십시오.
jpayne@68 685 .TP
jpayne@68 686 \fBlp=\fP\fIlp\fP
jpayne@68 687 리터럴 위치 비트 수를 지정하빈다. 최소 값은 0이고 최대 값은 4입니다. 기본 값은 0입니다.
jpayne@68 688 .IP ""
jpayne@68 689 \fIlp\fP 값은 리터럴 인코딩 진행시 비압축 데이터 정렬 방식 고려에 영향을 줍니다. 정렬 방식에 대한 자세한 정보는 하단 \fIpb\fP를
jpayne@68 690 참고하십시오.
jpayne@68 691 .TP
jpayne@68 692 \fBpb=\fP\fIpb\fP
jpayne@68 693 위치 비트 수를 지정합니다. 최소 값은 0이며 최대 값은 4입니다. 기본값은 2입니다.
jpayne@68 694 .IP ""
jpayne@68 695 \fIpb\fP 값은 보통 압축하지 않은 데이터에 어떤 정렬 방식을 고려하느냐에 영향을 줍니다. 기본적으로 4바이트
jpayne@68 696 정렬(2^\fIpb\fP=2^2=4)을 의미하는데, 이보다 더 나은 추측 값이 없어서 종종 최적의 선택으로 간주합니다.
jpayne@68 697 .IP ""
jpayne@68 698 정렬 상태를 알지 못할 경우, \fIpb\fP 설정 값이 파일 크기를 조금 줄일 수 있습니다. 예를 들면, 텍스트 파일이 단일 바이트 단위로
jpayne@68 699 정돈된 상태(US\-ASCII, ISO\-8859\-*, UTF\-8)라면, \fBpb=0\fP 설정 값으로 압축율을 조금 개선할 수 있습니다.
jpayne@68 700 UTF\-16 텍스트의 경우, \fBpb=1\fP 설정 값이 좋은 선택입니다. 정렬 바이트가 3 바이트 같은 홀수 바이트일 경우,
jpayne@68 701 \fBpb=0\fP 설정 값이 최적의 선택일지도 모릅니다.
jpayne@68 702 .IP ""
jpayne@68 703 가정 정렬을 \fIpb\fP 값과 \fIlp\fP 값으로 조정하긴 하지만, LZMA1과 LZMA2는 여전히 16바이트 정렬 방식으로 선호합니다.
jpayne@68 704 LZMA1 또는 LZMA2로 종종 압축하는 파일 형식이라고 하면 고려해볼만 합니다.
jpayne@68 705 .TP
jpayne@68 706 \fBmf=\fP\fImf\fP
jpayne@68 707 일치 검색기는 인코더 속도, 메모리 사용량, 압축율에 주된 영향을 줍니다. 보통 해시 체인 검색기는 이진 트리 검색기보다 빠르긴
jpayne@68 708 합니다. 기본 값은 \fI<사전설정>\fP에 따라 다릅니다. 0은 \fBhc3\fP을, 1\(en3은 \fBhc4\fP를, 나머지는
jpayne@68 709 \fBbt4\fP를 활용합니다.
jpayne@68 710 .IP ""
jpayne@68 711 다음 검색 필터를 지원합니다. 메모리 사용 공식은 \fIdict\fP 값이 2의 승수일 경우 실제에 가까운 근사치입니다.
jpayne@68 712 .RS
jpayne@68 713 .TP
jpayne@68 714 \fBhc3\fP
jpayne@68 715 2바이트, 3바이트 해싱 체인
jpayne@68 716 .br
jpayne@68 717 \fInice\fP 최소값: 3
jpayne@68 718 .br
jpayne@68 719 메모리 사용:
jpayne@68 720 .br
jpayne@68 721 \fIdict\fP * 7.5 (조건: \fIdict\fP <= 16 MiB);
jpayne@68 722 .br
jpayne@68 723 \fIdict\fP * 5.5 + 64 MiB (조건: \fIdict\fP > 16 MiB)
jpayne@68 724 .TP
jpayne@68 725 \fBhc4\fP
jpayne@68 726 2바이트, 3바이트, 4바이트 해싱 체인
jpayne@68 727 .br
jpayne@68 728 \fInice\fP 최소값: 4
jpayne@68 729 .br
jpayne@68 730 메모리 사용:
jpayne@68 731 .br
jpayne@68 732 \fIdict\fP * 7.5 (조건: \fIdict\fP <= 32 MiB);
jpayne@68 733 .br
jpayne@68 734 \fIdict\fP * 6.5 (조건: \fIdict\fP > 32 MiB)
jpayne@68 735 .TP
jpayne@68 736 \fBbt2\fP
jpayne@68 737 2바이트 해싱 이진 트리
jpayne@68 738 .br
jpayne@68 739 \fInice\fP 최소값: 2
jpayne@68 740 .br
jpayne@68 741 메모리 사용: \fIdict\fP * 9.5
jpayne@68 742 .TP
jpayne@68 743 \fBbt3\fP
jpayne@68 744 2바이트, 3바이트 해싱 이진트리
jpayne@68 745 .br
jpayne@68 746 \fInice\fP 최소값: 3
jpayne@68 747 .br
jpayne@68 748 메모리 사용:
jpayne@68 749 .br
jpayne@68 750 \fIdict\fP * 11.5 (조건: \fIdict\fP <= 16 MiB);
jpayne@68 751 .br
jpayne@68 752 \fIdict\fP * 9.5 + 64 MiB (조건: \fIdict\fP > 16 MiB)
jpayne@68 753 .TP
jpayne@68 754 \fBbt4\fP
jpayne@68 755 2바이트, 3바이트, 4바이트 해싱 이진 트리
jpayne@68 756 .br
jpayne@68 757 \fInice\fP 최소값: 4
jpayne@68 758 .br
jpayne@68 759 메모리 사용:
jpayne@68 760 .br
jpayne@68 761 \fIdict\fP * 11.5 (조건: \fIdict\fP <= 32 MiB);
jpayne@68 762 .br
jpayne@68 763 \fIdict\fP * 10.5 (조건: \fIdict\fP > 32 MiB)
jpayne@68 764 .RE
jpayne@68 765 .TP
jpayne@68 766 \fBmode=\fP\fI<모드>\fP
jpayne@68 767 압축 \fI<모드>\fP 값은 일치 검색기에서 생산하는 데이터 분석 방식을 지정합니다. 지원하는 \fI<모드>\fP는
jpayne@68 768 \fBfast\fP와 \fBnormal\fP 입니다. 기본값은 \fI<사전설정>\fP값 0\(en3에 대해 \fBfast\fP,
jpayne@68 769 \fI<사전설정>\fP값 4\(en9에 대해 \fBnormal\fP입니다.
jpayne@68 770 .IP ""
jpayne@68 771 보통 \fBfast\fP는 해시 체인 검색기에서 사용하며 \fBnormal\fP은 이진 트리 검색기에서 사용합니다. 이 동작은 또한
jpayne@68 772 \fI<사전설정>\fP 값이 할 일이기도 합니다.
jpayne@68 773 .TP
jpayne@68 774 \fBnice=\fP\fInice\fP
jpayne@68 775 일치하는 nice 길이를 지정합니다. 최소한 \fInice\fP 바이트 정도 일치하면, 알고리즘이 가능한 최선의 부분을 찾는 동작을
jpayne@68 776 멈춥니다.
jpayne@68 777 .IP ""
jpayne@68 778 \fInice\fP 값은 2\(en273 바이트입니다. 값이 클 수록 속도 면에서는 손해를 보겠지만 압축율은 더욱 올라갑니다. 기본 값은
jpayne@68 779 \fI<사전설정>\fP값에 따라 다릅니다.
jpayne@68 780 .TP
jpayne@68 781 \fBdepth=\fP\fI<깊이>\fP
jpayne@68 782 일치 검색기에서의 최대 검색 깊이를 지정합니다. 기본값은 특별한 값 0으로 지정하며, 이 값으로 압축 프로그램이 \fImf\fP 와
jpayne@68 783 \fInice\fP간 적절한 \fI<깊이>\fP 값을 결정합니다.
jpayne@68 784 .IP ""
jpayne@68 785 적절한 해시 체인 \fI<깊이>\fP 값은 이진 트리에서 4\(en100 그리고 16\(en1000 입니다. 상당히 큰 값을
jpayne@68 786 \fI<깊이>\fP 값으로 사용하면 일부 파일에 대해 인코더가 매우 느리게 동작할 수가 있습니다. 압축 시간이 너무 오래걸려서
jpayne@68 787 동작을 중간에 끊을 준비가 되지 않은 이상 \fI<깊이>\fP 설정 값은 1000을 넘지 않게하십시오.
jpayne@68 788 .RE
jpayne@68 789 .IP ""
jpayne@68 790 원시 스트림(\fB\-\-format=raw\fP)을 디코딩할 때, LZMA2는 딕셔너리 \fI<크기>\fP만 필요합니다. LZMA1는
jpayne@68 791 \fIlc\fP, \fIlp\fP, \fIpb\fP 값이 모두 필요합니다.
jpayne@68 792 .TP
jpayne@68 793 \fB\-\-x86\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 794 .PD 0
jpayne@68 795 .TP
jpayne@68 796 \fB\-\-arm\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 797 .TP
jpayne@68 798 \fB\-\-armthumb\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 799 .TP
jpayne@68 800 \fB\-\-arm64\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 801 .TP
jpayne@68 802 \fB\-\-powerpc\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 803 .TP
jpayne@68 804 \fB\-\-ia64\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 805 .TP
jpayne@68 806 \fB\-\-sparc\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 807 .TP
jpayne@68 808 \fB\-\-riscv\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 809 .PD
jpayne@68 810 브랜치/호출/점프(BCJ) 필터를 필터 체인에 추가합니다. 이 필터는 필터 체인의 비종결 필터로만 사용할 수 있습니다.
jpayne@68 811 .IP ""
jpayne@68 812 BCJ 필터는 머신 코드의 상대 주소를 절대 주소로 변환합니다. 데이터 크기를 바꾸지는 않지만 LZMA2에서 \fB.xz\fP 파일을
jpayne@68 813 0\(en15% 정도 줄여주게 하는 중복성이 늘어납니다. BCJ 필터는 언제든 뒤집을 수 있어, 데이터에 적절하지 않은 BCJ 필터
jpayne@68 814 형식을 활용하면, 그냥 가만히 두면 압축율이 약간 떨어지게 한다 하더라도, 데이터를 잃을 수가 있습니다. BCJ 필터는 굉장히 빠르며
jpayne@68 815 메모리 공간을 적게 활용합니다.
jpayne@68 816 .IP ""
jpayne@68 817 이 BCJ 필터에는 압축율 관련 몇가지 문제가 있습니다:
jpayne@68 818 .RS
jpayne@68 819 .IP \(bu 3
jpayne@68 820 실행 코드가 들어있는 몇가지 파일 형식(예: 목적 파일, 정적 라이브러리, 리눅스 커널 모듈)의 경우 필터 값으로 채운 명령 주소가
jpayne@68 821 있습니다. 여기 BCJ 필터의 경우 파일의 압축율을 떨어뜨리는 주소 변환을 수행합니다.
jpayne@68 822 .IP \(bu 3
jpayne@68 823 BCJ 필터를 아카이브에 적용하면, BCJ 필터를 사용하지 않았을 때보다 압축율이 떨어질 수가 있습니다. 예를 들면, 유사하거나 동일한
jpayne@68 824 실행 파일 여럿이 있으면 필터를 사용하여 파일을 덜 비슷하게 만들어 압축율이 떨어지게 합니다. 동일한 아카이브 파일에서 비 실행 파일의
jpayne@68 825 내용에 대해서도 비슷한 일이 벌어질 수 있습니다. 실제로 하나는 BCJ 필터를 걸고 하나는 제외하여 각 경우에 대해 어떤 경우가 결과가
jpayne@68 826 우수한 지 살펴보겠습니다.
jpayne@68 827 .RE
jpayne@68 828 .IP ""
jpayne@68 829 다른 명령 세트는 다른 정렬 상태에 놓여있습니다. 실행 파일은 필터가 제대로 동작하게 하려면 입력 데이터에 있는 이 값의 배수로
jpayne@68 830 정돈해야합니다.
jpayne@68 831 .RS
jpayne@68 832 .RS
jpayne@68 833 .PP
jpayne@68 834 .TS
jpayne@68 835 tab(;);
jpayne@68 836 l n l
jpayne@68 837 l n l.
jpayne@68 838 필터;정렬;참고
jpayne@68 839 x86;1;32\-bit 또는 64\-bit x86
jpayne@68 840 ARM;4;
jpayne@68 841 ARM\-Thumb;2;
jpayne@68 842 ARM64;4;4096 바이트 정렬이 가장 좋습니다
jpayne@68 843 PowerPC;4;빅엔디안 전용
jpayne@68 844 IA\-64;16;Itanium
jpayne@68 845 SPARC;4;
jpayne@68 846 RISC\-V;2;
jpayne@68 847 .TE
jpayne@68 848 .RE
jpayne@68 849 .RE
jpayne@68 850 .IP ""
jpayne@68 851 BCJ 필터를 사용한 데이터는 LZMA2로 보통 압축하기 때문에 LZMA2 옵션을 선택한 BCJ 필터의 정렬기준에 맞추도록 설정하면
jpayne@68 852 압축율을 좀 더 개선할 수 있습니다. 예를 들면:
jpayne@68 853 .RS
jpayne@68 854 .IP \(bu 3
jpayne@68 855 IA\-64 필터는 16\-바이트 정렬 방식으로 동작하기에 LZMA2 필터에 \fBpb=4,lp=4,lc=0\fP 옵션(2^4=16)을 주는게
jpayne@68 856 좋습니다.
jpayne@68 857 .IP \(bu 3
jpayne@68 858 RISC\-V 코드에는 16\-비트 압축 명령(C 확장) 적재 여부에 따라 2\-바이트 또는 4\-바이트 정렬 방식을 채택합니다. 16\-비트
jpayne@68 859 명령을 사용하면, \fBpb=2,lp=1,lc=3\fP 또는 \fBpb=1,lp=1,lc=3\fP 옵션 값 사용이 바람직합니다. 16\-비트 명령이
jpayne@68 860 없다면, \fBpb=2,lp=2,lc=2\fP 옵션 값을 활용하는게 좋습니다. "RVC"가 "Flags"행에 나타나는지 확인할 때
jpayne@68 861 \fBreadelf \-h\fP 명령을 사용할 수 있습니다.
jpayne@68 862 .IP \(bu 3
jpayne@68 863 ARM64는 항상 4\-바이트 정렬 방식을 택하기에 \fBpb=2,lp=2,lc=2\fP 옵션 값을 활용하는게 좋습니다.
jpayne@68 864 .IP \(bu 3
jpayne@68 865 x86 필터는 예외입니다. x86 실행 파일을 압축할 경우에는 보통 LZMA2 기본 옵션 값(\fBpb=2,lp=0,lc=3\fP)을 그대로
jpayne@68 866 사용하는게 좋습니다.
jpayne@68 867 .RE
jpayne@68 868 .IP ""
jpayne@68 869 모든 BCJ 필터는 동일한 \fI옵션\fP을 지원합니다:
jpayne@68 870 .RS
jpayne@68 871 .TP
jpayne@68 872 \fBstart=\fP\fI<오프셋>\fP
jpayne@68 873 상대 주소와 절대 주소를 변환할 때 사용할 시작 \fI<오프셋>\fP을 지정합니다. \fI<오프셋>\fP에는 필터
jpayne@68 874 정렬 배수여야 합니다(상단 테이블 참조). 기본값은 0입니다. 실제로 기본값이 낫습니다. 개별 \fI<오프셋>\fP 지정
jpayne@68 875 값은 거의 쓸모가 없습니다.
jpayne@68 876 .RE
jpayne@68 877 .TP
jpayne@68 878 \fB\-\-delta\fP[\fB=\fP\fI<옵션>\fP]
jpayne@68 879 필터 체인에 델타 필터를 추가합니다. 델타 필터는 필터 체인에서 마지막에 지정하지 않은 필터로만 사용할 수 있습니다.
jpayne@68 880 .IP ""
jpayne@68 881 현재로서는 바이트 단위 단순 델타계산 결과만 보여줍니다. 예를 들면, 압축하지 않은 비트맵 그림 또는 압축하지 않은 PCM 오디오를
jpayne@68 882 압축할 때 쓸만합니다. 그러나 특별한 목적으로 활용하는 알고리즘은 델타 + LZMA2 보다 더 나은 결과를 가져다 주기도 합니다.
jpayne@68 883 이는 특히 오디오의 경우 맞는 이야기인데, \fBflac\fP(1)의 경우 더 빠르고 우수한 압축율을 보여줍니다.
jpayne@68 884 .IP ""
jpayne@68 885 지원 \fI옵션\fP:
jpayne@68 886 .RS
jpayne@68 887 .TP
jpayne@68 888 \fBdist=\fP\fI<차이>\fP
jpayne@68 889 바이트 단위 델터 계산 \fI<차이>\fP를 지정합니다. \fI<차이>\fP값은 1\(en256 이어야합니다. 기본
jpayne@68 890 값은 1입니다.
jpayne@68 891 .IP ""
jpayne@68 892 예를 들어, \fBdist=2\fP 옵션과 A1 B1 A2 B3 A3 B5 A4 B7 입력 값을 주면, 출력 값은 A1 B1 01 02 01
jpayne@68 893 02 01 02 입니다.
jpayne@68 894 .RE
jpayne@68 895 .
jpayne@68 896 .SS "기타 옵션"
jpayne@68 897 .TP
jpayne@68 898 \fB\-q\fP, \fB\-\-quiet\fP
jpayne@68 899 경고 및 알림을 끕니다. 두 번 지정하면 오류 메시지 표시도 끕니다. 이 옵션은 종료 상태에 영향을 주지 않습니다. 경고 표시를
jpayne@68 900 끄더라도, 종료 상태에서는 여전히 경고가 나타났음을 알려줍니다.
jpayne@68 901 .TP
jpayne@68 902 \fB\-v\fP, \fB\-\-verbose\fP
jpayne@68 903 출력 내용이 많아집니다. 표준 오류를 터미널에 연결했다면 \fBxz\fP는 진행 표시를 나타냅니다. \fB\-\-verbose\fP를 두번 지정하면
jpayne@68 904 더 많은 내용을 표시합니다.
jpayne@68 905 .IP ""
jpayne@68 906 진행 표시에서는 다음 정보를 나타냅니다:
jpayne@68 907 .RS
jpayne@68 908 .IP \(bu 3
jpayne@68 909 입력 파일의 크기를 알고 있을 경우 완료 백분율. 파이프 처리시에는 백분율을 나타낼 수 없습니다.
jpayne@68 910 .IP \(bu 3
jpayne@68 911 산출 압축 데이터 용량 (압축) 또는 소모 공간 용량 (압축 해제).
jpayne@68 912 .IP \(bu 3
jpayne@68 913 비압축 데이터 소모 용량 (압축) 또는 산출 용량 (압축 해제).
jpayne@68 914 .IP \(bu 3
jpayne@68 915 압축 데이터 산출 용량을 비압축 데이터 처리 용량으로 나누어 계산한 압축율.
jpayne@68 916 .IP \(bu 3
jpayne@68 917 압축 또는 압축 해제 속도. 초당 비압축 데이터 소모량(압축) 또는 산출 용량(압축 해제)를 측정한 값입니다. \fBxz\fP에서 파일
jpayne@68 918 처리를 시작한 몇 초 후 나타납니다.
jpayne@68 919 .IP \(bu 3
jpayne@68 920 경과 시간 형식은 M:SS 또는 H:MM:SS 입니다.
jpayne@68 921 .IP \(bu 3
jpayne@68 922 추산 여분 시간은 \fBxz\fP가 파일을 처리하기 시작한 이후 입력 파일의 크기를 알고 몇 초가 지난 후에야 보여줍니다. 시간은 콜론
jpayne@68 923 문자를 사용하지 않고 덜 자세한 형식으로, 예를 들면, 2분 30초 와 같은 형식으로 보여줍니다.
jpayne@68 924 .RE
jpayne@68 925 .IP ""
jpayne@68 926 표준 오류가 터미널이 아니라면 \fB\-\-verbose\fP는 \fBxz\fP에서 파일 이름, 압축 크기, 압축 해제 용량, 압축율, 그리고
jpayne@68 927 가능하다면 파일을 압축 또는 압축 해제한 후 표준 오류로 속도와 걸린 시간을 나타내도록 합니다. 속도와 걸린 시간 정보는 동작을
jpayne@68 928 처리하는데 최소한 몇초 정도 소요했을 경우에만 들어갑니다. 동작이 끝나지 않았다면, 이를테면 사용자의 중단 요청이 있었을 경우 입력
jpayne@68 929 파일의 크기를 알고 있을 때 압축 백분율 정보도 들어갑니다.
jpayne@68 930 .TP
jpayne@68 931 \fB\-Q\fP, \fB\-\-no\-warn\fP
jpayne@68 932 경고로 알릴 만한 상황을 만났다 하더라도 종료 상태 2번을 설정하지 않습니다. 이 옵션은 출력 수준에 영향을 주지 않기 때문에,
jpayne@68 933 \fB\-\-quiet\fP 옵션과 \fB\-\-no\-warn\fP 옵션을 경고 표시를 막고 종료 상태를 바꾸지 않을 목적으로 사용합니다.
jpayne@68 934 .TP
jpayne@68 935 \fB\-\-robot\fP
jpayne@68 936 머신에서 해석할 형식으로 메시지를 나타냅니다. liblzma 대신 \fBxz\fP를 활용하려는 다양상 스크립트로서의 프론트엔드를 쉽게
jpayne@68 937 작성하도록 하기 위함입니다. 이 옵션을 지정한 출력은 \fBxz\fP 릴리스가 어떻게 되든 안정 버전이란 의미입니다. 자세한 내용은
jpayne@68 938 \fB로봇 모드\fP 섹션을 참고하십시오.
jpayne@68 939 .TP
jpayne@68 940 \fB\-\-info\-memory\fP
jpayne@68 941 압축 및 압축 해제시 물리 메모리 용량 (RAM), \fBxz\fP에서 파악하는 프로세서 스레드 갯수, 메모리 사용량 한계를 파악하기 쉬운
jpayne@68 942 형식으로 나타내고 무사히 나갑니다.
jpayne@68 943 .TP
jpayne@68 944 \fB\-h\fP, \fB\-\-help\fP
jpayne@68 945 보통 사용하는 옵션을 설명하는 도움말 메시지를 출력한 후, 완전히 빠져나갑니다.
jpayne@68 946 .TP
jpayne@68 947 \fB\-H\fP, \fB\-\-long\-help\fP
jpayne@68 948 \fBxz\fP의 모든 기능을 설명하는 도움말 메시지를 출력한 후, 완전히 빠져나갑니다
jpayne@68 949 .TP
jpayne@68 950 \fB\-V\fP, \fB\-\-version\fP
jpayne@68 951 \fBxz\fP와 liblzma 버전 번호를 가독 형식으로 출력합니다. 기계 해석 가능 형식을 가져오려면 \fB\-\-version\fP 앞에
jpayne@68 952 \fB\-\-robot\fP을 지정하십시오.
jpayne@68 953 .
jpayne@68 954 .SH "로봇 모드"
jpayne@68 955 로봇 모드는 \fB\-\-robot\fP 옵션으로 동작합니다. \fBxz\fP 출력을 다른 프로그램에서 해석하기 쉽게 해줍니다. 현재로서는
jpayne@68 956 \fB\-\-robot\fP 옵션은 \fB\-\-list\fP, \fB\-\-filters\-help\fP, \fB\-\-info\-memory\fP, \fB\-\-version\fP
jpayne@68 957 옵션하고만 사용할 수 있습니다. 앞으로는 압축 및 압축 해제 동작에 대해서도 지원합니다.
jpayne@68 958 .
jpayne@68 959 .SS "목록 모드"
jpayne@68 960 \fBxz \-\-robot \-\-list\fP 명령은 탭으로 구분한 출력 형태를 활용합니다. 모든 행의 첫번째 컬럼에는 해당 행에서 찾을 수
jpayne@68 961 있는 정보의 형식을 나타냅니다:
jpayne@68 962 .TP
jpayne@68 963 \fB이름\fP
jpayne@68 964 이 행은 항상 파일 목록 시작 부분의 첫번째 줄에 있습니다. 이 행의 두번째 컬럼에 파일 이름이 들어있습니다.
jpayne@68 965 .TP
jpayne@68 966 \fB파일\fP
jpayne@68 967 이 행에는 \fB.xz\fP 파일의 전반적인 정보가 들어있습니다. 이 행은 항상 \fB이름\fP 행 다음에 있습니다.
jpayne@68 968 .TP
jpayne@68 969 \fB스트림\fP
jpayne@68 970 이 행 형식은 \fB\-\-verbose\fP 옵션을 지정했을 때만 사용합니다. \fB.xz\fP 파일의 \fB스트림\fP 행 수만큼 나타납니다.
jpayne@68 971 .TP
jpayne@68 972 \fB블록\fP
jpayne@68 973 이 행 형식은 \fB\-\-verbose\fP 옵션을 지정했을 때만 사용합니다. \fB.xz\fP 파일의 블록 수만큼 \fB블록\fP 행이 나타납니다.
jpayne@68 974 \fB블록\fP 행은 모든 \fB스트림\fP 행 다음에 나타납니다. 다른 형식의 행이 끼어들지는 않습니다.
jpayne@68 975 .TP
jpayne@68 976 \fB요약\fP
jpayne@68 977 이 행 형식은 \fB\-\-verbose\fP 옵션을 두번 지정했을 때만 사용합니다. 이 행은 모든 \fB블록\fP 행 다음에 출력합니다.
jpayne@68 978 \fB파일\fP 행과 비슷하게, \fB요약\fP 행에는 \fB.xz\fP 파일의 전반적인 정보가 담겨있습니다.
jpayne@68 979 .TP
jpayne@68 980 \fB총계\fP
jpayne@68 981 이 행은 목록 출력의 가장 마지막에 항상 나타납니다. 총 갯수와 크기를 나타냅니다.
jpayne@68 982 .PP
jpayne@68 983 \fB파일\fP 행 컬럼:
jpayne@68 984 .PD 0
jpayne@68 985 .RS
jpayne@68 986 .IP 2. 4
jpayne@68 987 파일 스트림 갯수
jpayne@68 988 .IP 3. 4
jpayne@68 989 스트림의 블록 총 갯수
jpayne@68 990 .IP 4. 4
jpayne@68 991 파일 압축 크기
jpayne@68 992 .IP 5. 4
jpayne@68 993 파일 압축 해제 크기
jpayne@68 994 .IP 6. 4
jpayne@68 995 예를 들면, \fB0.123\fP과 같은 압축율 입니다. 비율이 9.999라면, 대시 문자 3개 (\fB\-\-\-\fP)를 비율 값 대신 나타냅니다.
jpayne@68 996 .IP 7. 4
jpayne@68 997 쉼표로 구분한 무결성 검사 이름 목록입니다. \fBNone\fP, \fBCRC32\fP, \fBCRC64\fP, \fBSHA\-256\fP 문자열을 알려진
jpayne@68 998 검사 형식으로 사용합니다. 알 수 없는 검사 형식에 대해서는 \fBUnknown\-\fP\fIN\fP을 사용하며, 여기서 \fIN\fP은 (한 두자리)
jpayne@68 999 정수형 숫자값으로 이루어진 검사 ID 입니다.
jpayne@68 1000 .IP 8. 4
jpayne@68 1001 파일의 스트림 패딩 총 길이
jpayne@68 1002 .RE
jpayne@68 1003 .PD
jpayne@68 1004 .PP
jpayne@68 1005 \fB스트림\fP 행 컬럼:
jpayne@68 1006 .PD 0
jpayne@68 1007 .RS
jpayne@68 1008 .IP 2. 4
jpayne@68 1009 스트림 번호 (첫 스트림은 1번)
jpayne@68 1010 .IP 3. 4
jpayne@68 1011 스트림의 블록 총 갯수
jpayne@68 1012 .IP 4. 4
jpayne@68 1013 압축 시작 오프셋
jpayne@68 1014 .IP 5. 4
jpayne@68 1015 비압축 시작 오프셋
jpayne@68 1016 .IP 6. 4
jpayne@68 1017 압축 크기 (스트림 패딩 미포함)
jpayne@68 1018 .IP 7. 4
jpayne@68 1019 압축 해제 용량
jpayne@68 1020 .IP 8. 4
jpayne@68 1021 압축율
jpayne@68 1022 .IP 9. 4
jpayne@68 1023 무결성 검사 이름
jpayne@68 1024 .IP 10. 4
jpayne@68 1025 스트림 패딩 길이
jpayne@68 1026 .RE
jpayne@68 1027 .PD
jpayne@68 1028 .PP
jpayne@68 1029 \fB블록\fP 행 컬럼:
jpayne@68 1030 .PD 0
jpayne@68 1031 .RS
jpayne@68 1032 .IP 2. 4
jpayne@68 1033 이 블록이 들어간 스트림 갯수
jpayne@68 1034 .IP 3. 4
jpayne@68 1035 스트림 시작 부분의 블록 번호 (첫번째 블록은 1번)
jpayne@68 1036 .IP 4. 4
jpayne@68 1037 파일 시작 부분의 블록 번호
jpayne@68 1038 .IP 5. 4
jpayne@68 1039 파일 시작 부분의 압축 시작 오프셋
jpayne@68 1040 .IP 6. 4
jpayne@68 1041 파일 시작 부분의 비압축 시작 오프셋
jpayne@68 1042 .IP 7. 4
jpayne@68 1043 총 블록 압축 크기 (헤더 포함)
jpayne@68 1044 .IP 8. 4
jpayne@68 1045 압축 해제 용량
jpayne@68 1046 .IP 9. 4
jpayne@68 1047 압축율
jpayne@68 1048 .IP 10. 4
jpayne@68 1049 무결성 검사 이름
jpayne@68 1050 .RE
jpayne@68 1051 .PD
jpayne@68 1052 .PP
jpayne@68 1053 \fB\-\-verbose\fP를 두 번 지정하면, 추가 컬럼을 \fB블록\fP 행에 넣습니다. \fB\-\-verbose\fP 단일 지정시에는 이 정보를 볼
jpayne@68 1054 때 탐색을 여러번 수행해야 하기 때문에 실행 과정이 느려질 수 있어서 나타내지 않습니다:
jpayne@68 1055 .PD 0
jpayne@68 1056 .RS
jpayne@68 1057 .IP 11. 4
jpayne@68 1058 16진수 무결성 검사값
jpayne@68 1059 .IP 12. 4
jpayne@68 1060 블록 헤더 크기
jpayne@68 1061 .IP 13. 4
jpayne@68 1062 블록 플래그: \fBc\fP는 압축 크기가 현재 값임을 나타내고, \fBu\fP는 압축 전 원본 크기가 현재 값임을 나타냅니다. 플래그를 설정하지
jpayne@68 1063 않았다면, 문자열 길이를 유지할 목적으로 대시 \fB\-\fP 를 대신 나타냅니다. 새 플래그는 나중에 문자열 끝 부분에 추가할 예정입니다.
jpayne@68 1064 .IP 14. 4
jpayne@68 1065 블록에 압축 해서 넣은 데이터의 실제 츠기 (블록 헤더, 블록 패딩, 검사 필드 제외)
jpayne@68 1066 .IP 15. 4
jpayne@68 1067 이 \fBxz\fP 버전에서 이 블록의 압축을 해제할 때 필요한 (바이트 단위) 메모리 용량
jpayne@68 1068 .IP 16. 4
jpayne@68 1069 필터 체인. 대부분 사용하는 옵션은 압축 해제시 필요한 옵션만을 \fB.xz\fP 헤더에 저장하기 때문에 압축 시간에 알 수 없습니다.
jpayne@68 1070 .RE
jpayne@68 1071 .PD
jpayne@68 1072 .PP
jpayne@68 1073 \fB요약\fP 행 컬럼:
jpayne@68 1074 .PD 0
jpayne@68 1075 .RS
jpayne@68 1076 .IP 2. 4
jpayne@68 1077 이 \fBxz\fP 버전에서 이 파일 압축을 해제할 때 필요한 (바이트 단위) 메모리 용량
jpayne@68 1078 .IP 3. 4
jpayne@68 1079 모든 블록 헤더에 압축 크기와 압축 전 원본 크기 정보가 들어갔는지 여부를 나타내는 \fByes\fP 또는 \fBno\fP 값
jpayne@68 1080 .PP
jpayne@68 1081 \fBxz\fP \fI5.1.2alpha\fP \fI부터:\fP
jpayne@68 1082 .IP 4. 4
jpayne@68 1083 파일 압축 해제시 필요한 최소 \fBxz\fP 버전
jpayne@68 1084 .RE
jpayne@68 1085 .PD
jpayne@68 1086 .PP
jpayne@68 1087 \fB총계\fP 행 컬럼:
jpayne@68 1088 .PD 0
jpayne@68 1089 .RS
jpayne@68 1090 .IP 2. 4
jpayne@68 1091 스트림 갯수
jpayne@68 1092 .IP 3. 4
jpayne@68 1093 블록 갯수
jpayne@68 1094 .IP 4. 4
jpayne@68 1095 압축 크기
jpayne@68 1096 .IP 5. 4
jpayne@68 1097 압축 해제 용량
jpayne@68 1098 .IP 6. 4
jpayne@68 1099 평균 압축율
jpayne@68 1100 .IP 7. 4
jpayne@68 1101 파일에 들어 있어 쉼표로 구분한 무결성 검사 이름 목록
jpayne@68 1102 .IP 8. 4
jpayne@68 1103 스트림 패딩 길이
jpayne@68 1104 .IP 9. 4
jpayne@68 1105 파일 갯수. \fB파일\fP 행의 컬럼 순서를 따라갑니다.
jpayne@68 1106 .PD
jpayne@68 1107 .RE
jpayne@68 1108 .PP
jpayne@68 1109 \fB\-\-verbose\fP 옵션을 두 번 지정하면, \fB총계\fP 행에 추가 컬럼이 들어갑니다:
jpayne@68 1110 .PD 0
jpayne@68 1111 .RS
jpayne@68 1112 .IP 10. 4
jpayne@68 1113 이 \fBxz\fP 버전에서 파일 압축을 해제할 떄 필요한 (바이트 단위) 최대 메모리 사용량
jpayne@68 1114 .IP 11. 4
jpayne@68 1115 모든 블록 헤더에 압축 크기와 압축 전 원본 크기 정보가 들어갔는지 여부를 나타내는 \fByes\fP 또는 \fBno\fP 값
jpayne@68 1116 .PP
jpayne@68 1117 \fBxz\fP \fI5.1.2alpha\fP \fI부터:\fP
jpayne@68 1118 .IP 12. 4
jpayne@68 1119 파일 압축 해제시 필요한 최소 \fBxz\fP 버전
jpayne@68 1120 .RE
jpayne@68 1121 .PD
jpayne@68 1122 .PP
jpayne@68 1123 차후 버전에서는 새 행 형식을 추가하고 기존 행 형식에 추가할 수 있는 새 컬럼을 넣기 까지는 알 수 있겠지만, 기존 컬럼은 바꾸지 않을
jpayne@68 1124 예정입니다.
jpayne@68 1125 .
jpayne@68 1126 .SS "필터 도움말"
jpayne@68 1127 \fBxz \-\-robot \-\-filters\-help\fP 는 다음 형식의 지원 필터 목록을 출력합니다:
jpayne@68 1128 .PP
jpayne@68 1129 \fI<필터>\fP\fB:\fP\fI<옵션>\fP\fB=<\fP\fI값\fP\fB>,\fP\fI<옵션>\fP\fB=<\fP\fI값\fP\fB>\fP...
jpayne@68 1130 .TP
jpayne@68 1131 \fI<필터>\fP
jpayne@68 1132 필터 이름
jpayne@68 1133 .TP
jpayne@68 1134 \fI<옵션>\fP
jpayne@68 1135 필터별 옵션 이름
jpayne@68 1136 .TP
jpayne@68 1137 \fI<값>\fP
jpayne@68 1138 숫자 \fI값\fP 범위는 \fB<\fP\fI최소\fP\fB\-\fP\fI최대\fP\fB>\fP입니다. 문자열 \fI값\fP은 \fB< >\fP 범위
jpayne@68 1139 내에서 선택하며 \fB|\fP 문자로 구분합니다.
jpayne@68 1140 .PP
jpayne@68 1141 각 필터는 한 줄에 하나씩 출력합니다.
jpayne@68 1142 .
jpayne@68 1143 .SS "메모리 제한 정보"
jpayne@68 1144 \fBxz \-\-robot \-\-info\-memory\fP 명령은 탭으로 나뉜 여러 컬럼을 단일 행으로 나타냅니다:
jpayne@68 1145 .IP 1. 4
jpayne@68 1146 물리 메모리(RAM)의 바이트 단위 총량.
jpayne@68 1147 .IP 2. 4
jpayne@68 1148 압축 진행시 바이트 단위 메모리 사용 한계값 (\fB\-\-memlimit\-compress\fP). 특수 값 \fB0\fP은 단일\-스레드 모드에서
jpayne@68 1149 제한을 두지 않는 기본 설정임을 나타냅니다.
jpayne@68 1150 .IP 3. 4
jpayne@68 1151 압축 해제시 바이트 단위 메모리 사용 한계값 (\fB\-\-memlimit\-decompress\fP). 특수 값 \fB0\fP은 단일\-스레드 모드에서
jpayne@68 1152 제한을 두지 않는 기본 설정임을 나타냅니다.
jpayne@68 1153 .IP 4. 4
jpayne@68 1154 \fBxz\fP 5.3.4alpha 이후: 다중\-스레드 기반 압축 해제시 바이트 단위 메모리
jpayne@68 1155 사용량(\fB\-\-memlimit\-mt\-decompress\fP). 분명하게 제한을 걸어두지 않았을 경우 5번째 컬럼에 나타난 시스템별
jpayne@68 1156 기본값을 사용하기 때문에 0 값을 지정하면 안됩니다. 또한 \fB\-\-memlimit\-mt\-decompress\fP로 세번째 컬럼 값보다 더
jpayne@68 1157 크게 지정을 한다 할지라도 이 값이 세번째 컬럼 값보다 크면 안됩니다.
jpayne@68 1158 .IP 5. 4
jpayne@68 1159 \fBxz\fP 5.3.4alpha 이후: A system\-specific default memory usage limit that is
jpayne@68 1160 used to limit the number of threads when compressing with an automatic
jpayne@68 1161 number of threads (\fB\-\-threads=0\fP) and no memory usage limit has been
jpayne@68 1162 specified (\fB\-\-memlimit\-compress\fP). This is also used as the default value
jpayne@68 1163 for \fB\-\-memlimit\-mt\-decompress\fP.
jpayne@68 1164 .IP 6. 4
jpayne@68 1165 \fBxz\fP 5.3.4alpha 이후: Number of available processor threads.
jpayne@68 1166 .PP
jpayne@68 1167 차후, \fBxz \-\-robot \-\-info\-memory\fP 출력에는 더 많은 내용이 들어가지만, 한 줄 이상은 넘어가지 않습니다.
jpayne@68 1168 .
jpayne@68 1169 .SS 버전
jpayne@68 1170 \fBxz \-\-robot \-\-version\fP 은 \fBxz\fP 와 liblzma의 버전 번호를 다음 형식으로 나타냅니다:
jpayne@68 1171 .PP
jpayne@68 1172 \fBXZ_VERSION=\fP\fIXYYYZZZS\fP
jpayne@68 1173 .br
jpayne@68 1174 \fBLIBLZMA_VERSION=\fP\fIXYYYZZZS\fP
jpayne@68 1175 .TP
jpayne@68 1176 \fIX\fP
jpayne@68 1177 주 버전.
jpayne@68 1178 .TP
jpayne@68 1179 \fIYYY\fP
jpayne@68 1180 부 버전. 짝수가 안정 버전입니다. 홀수는 알파 또는 베타 버전입니다.
jpayne@68 1181 .TP
jpayne@68 1182 \fIZZZ\fP
jpayne@68 1183 안정 릴리스의 패치 수준 또는 개발 릴리스의 횟수입니다.
jpayne@68 1184 .TP
jpayne@68 1185 \fIS\fP
jpayne@68 1186 안정도. 0은 알파 버전, 1은 베타 버전을 나타내며, 2는 안정 버전을 나타냅니다. \fIS\fP는 \fIYYY\fP 값이 짝수라 해도 항상
jpayne@68 1187 2여야 합니다.
jpayne@68 1188 .PP
jpayne@68 1189 \fBxz\fP 명령과 liblzma이 동일한 XZ 유틸리티 릴리스에서 나왔다면 두 행의 \fIXYYYZZZS\fP 값은 같습니다.
jpayne@68 1190 .PP
jpayne@68 1191 예제: 4.999.9beta는 \fB49990091\fP이며, 5.0.0은 \fB50000002\fP입니다.
jpayne@68 1192 .
jpayne@68 1193 .SH "종료 상태"
jpayne@68 1194 .TP
jpayne@68 1195 \fB0\fP
jpayne@68 1196 모든 상태 양호.
jpayne@68 1197 .TP
jpayne@68 1198 \fB1\fP
jpayne@68 1199 오류 발생.
jpayne@68 1200 .TP
jpayne@68 1201 \fB2\fP
jpayne@68 1202 눈여겨볼 경고가 나타났지만, 실제 오류는 일어나지 않음.
jpayne@68 1203 .PP
jpayne@68 1204 표준 오류에 출력하는 알림(경고 또는 오류 아님)는 종료 상태에 영향을 주지 않습니다.
jpayne@68 1205 .
jpayne@68 1206 .SH 환경
jpayne@68 1207 \fBxz\fP는 빈칸으로 구분한 옵션 값 목록을 \fBXZ_DEFAULTS\fP, \fBXZ_OPT\fP 환경 변수에서 순서대로, 명령행에서 옵션을
jpayne@68 1208 해석하기 전에 불러옵니다. 참고로 환경 변수에서 옵션만 해석하며, 옵션이 아닌 부분은 조용히 무시합니다. 해석은
jpayne@68 1209 \fBgetopt_long\fP(3)으로 가능하며, 명령행 인자로 활용하기도 합니다.
jpayne@68 1210 .TP
jpayne@68 1211 \fBXZ_DEFAULTS\fP
jpayne@68 1212 사용자별, 시스템 범위 기본 옵션입니다. 보통 \fBxz\fP의 메모리 사용량 제한을 기본으로 걸어둘 경우 셸 초기화 스크립트에
jpayne@68 1213 설정합니다. 셸 초기화 스크립트와 별도의 유사한 경우를 제외하고라면, 스크립트에서는 \fBXZ_DEFAULTS\fP 환경 변수를 설정하지
jpayne@68 1214 말거나 설정을 해제해야합니다.
jpayne@68 1215 .TP
jpayne@68 1216 \fBXZ_OPT\fP
jpayne@68 1217 \fBxz\fP 명령행으로 옵션 설정 값을 직접 전달할 수 없을 경우 \fBxz\fP에 옵션을 전달하는 환경 변수입니다. 예를 들어, \fBxz\fP를
jpayne@68 1218 스크립트 또는 도구에서 실행할 경우 GNU \fBtar\fP(1) 라면:
jpayne@68 1219 .RS
jpayne@68 1220 .RS
jpayne@68 1221 .PP
jpayne@68 1222 .nf
jpayne@68 1223 \f(CRXZ_OPT=\-2v tar caf foo.tar.xz foo\fR
jpayne@68 1224 .fi
jpayne@68 1225 .RE
jpayne@68 1226 .RE
jpayne@68 1227 .IP ""
jpayne@68 1228 예를 들면, 스크립트에서 \fBXZ_OPT\fP 를 활용하여, 스크립트별로 기본 압축 옵션을 지정할 수 있습니다. 적절한 이유가 있다면
jpayne@68 1229 \fBXZ_OPT\fP 옵션 값을 사용자가 바꾸는걸 추천합니다. 예를 들면, \fBsh\fP(1) 스크립트에서 다음처럼 활용할 수도 있습니다:
jpayne@68 1230 .RS
jpayne@68 1231 .RS
jpayne@68 1232 .PP
jpayne@68 1233 .nf
jpayne@68 1234 \f(CRXZ_OPT=${XZ_OPT\-"\-7e"}
jpayne@68 1235 export XZ_OPT\fR
jpayne@68 1236 .fi
jpayne@68 1237 .RE
jpayne@68 1238 .RE
jpayne@68 1239 .
jpayne@68 1240 .SH "LZMA 유틸리티 호환성"
jpayne@68 1241 \fBxz\fP의 명령행 문법은 실제로 LZMA 유틸리티 4.32.x에서 찾을 수 있는 \fBlzma\fP, \fBunlzma\fP \fBlzcat\fP의
jpayne@68 1242 상위 집합입니다. 대부분의 경우 LZMA 유틸리티를 XZ 유틸리티로 기존에 작성한 스크립트를 깨지 않고도 바꿀 수 있습니다. 몇가지
jpayne@68 1243 비호환성 문제 때문에 문제가 일어날 수는 있습니다.
jpayne@68 1244 .
jpayne@68 1245 .SS "압축 사전 설정 단계"
jpayne@68 1246 압축 수준 사전 설정의 번호 부여 방식은 \fBxz\fP와 LZMA 유틸리티가 동일하지 않습니다. 가장 중요한 차이는 다른 사전 설정에 대해
jpayne@68 1247 딕셔너리 크기를 어떻게 대응했느냐 여부입니다. 딕셔너리 크기는 압축 해제시 메모리 사용량과 거의 비슷합니다.
jpayne@68 1248 .RS
jpayne@68 1249 .PP
jpayne@68 1250 .TS
jpayne@68 1251 tab(;);
jpayne@68 1252 c c c
jpayne@68 1253 c n n.
jpayne@68 1254 단계;xz;LZMA 유틸리티
jpayne@68 1255 \-0;256 KiB;없음
jpayne@68 1256 \-1;1 MiB;64 KiB
jpayne@68 1257 \-2;2 MiB;1 MiB
jpayne@68 1258 \-3;4 MiB;512 KiB
jpayne@68 1259 \-4;4 MiB;1 MiB
jpayne@68 1260 \-5;8 MiB;2 MiB
jpayne@68 1261 \-6;8 MiB;4 MiB
jpayne@68 1262 \-7;16 MiB;8 MiB
jpayne@68 1263 \-8;32 MiB;16 MiB
jpayne@68 1264 \-9;64 MiB;32 MiB
jpayne@68 1265 .TE
jpayne@68 1266 .RE
jpayne@68 1267 .PP
jpayne@68 1268 딕셔너리 크기 차이는 압축 프로그램 메모리 사용에 영향을 주지만, LZMA 유틸리티와 XZ 유틸리티에서 사용량이 늘어나는 다른 차이점이
jpayne@68 1269 있습니다:
jpayne@68 1270 .RS
jpayne@68 1271 .PP
jpayne@68 1272 .TS
jpayne@68 1273 tab(;);
jpayne@68 1274 c c c
jpayne@68 1275 c n n.
jpayne@68 1276 단계;xz;LZMA 유틸리티 4.32.x
jpayne@68 1277 \-0;3 MiB;없음
jpayne@68 1278 \-1;9 MiB;2 MiB
jpayne@68 1279 \-2;17 MiB;12 MiB
jpayne@68 1280 \-3;32 MiB;12 MiB
jpayne@68 1281 \-4;48 MiB;16 MiB
jpayne@68 1282 \-5;94 MiB;26 MiB
jpayne@68 1283 \-6;94 MiB;45 MiB
jpayne@68 1284 \-7;186 MiB;83 MiB
jpayne@68 1285 \-8;370 MiB;159 MiB
jpayne@68 1286 \-9;674 MiB;311 MiB
jpayne@68 1287 .TE
jpayne@68 1288 .RE
jpayne@68 1289 .PP
jpayne@68 1290 XZ 유틸리티의 기본 사전 설정 수준값은 \fB\-6\fP이지만 LZMA 유틸리티의 기본 사전 설정 수준값은 \fB\-7\fP입니다. 두 프로그램의
jpayne@68 1291 딕셔너리 메모리 기본 사용량은 8MiB입니다.
jpayne@68 1292 .
jpayne@68 1293 .SS "스트림 vs 비스트림 .lzma 파일"
jpayne@68 1294 파일을 압축하지 않은 크기는 \fB.lzma\fP 헤더에 저장합니다. LZMA 유틸리티는 일반 파일을 압축할 때 압축하지 않은 파일의 크기를
jpayne@68 1295 저장합니다. 이 대신 압축하지 않은 크기를 '알 수 없음' 으로 저장하고 압축 해제 프로그램이 멈춰야 할 지점에
jpayne@68 1296 end\-of\-payload 마커를 사용하는 방법도 있습니다. LZMA 유틸리티는 파이프로 들어온 입력과 같이 압축하지 않은 파일의
jpayne@68 1297 크기를 알 수 없을 때 이런 방식을 활용합니다.
jpayne@68 1298 .PP
jpayne@68 1299 \fBxz\fP는 \fB.lzma\fP 파일을 end\-of\-payload 마커의 유무와 관계없이 압축 해제 방식을 모두 지원하지만, \fBxz\fP로
jpayne@68 1300 만든 모든 \fB.lzma\fP 파일은 end\-of\-payload 마커를 사용하며, \fB.lzma\fP 헤더에 압축하지 않은 파일 크기를 '알 수
jpayne@68 1301 없음'으로 표기합니다. 이 방식은 드문 상황에서 문제를 야기할 수 있습니다. 예를 들면, 임베디드 장치의 \fB.lzma\fP 압축 해제
jpayne@68 1302 프로그램은 압축을 해제했을 때 크기를 알아야 동작합니다. 이 문제를 만나면, LZMA 유틸리티 또는 LZMA SDK를 활용하여
jpayne@68 1303 \&\fB.lzma\fP 파일에 압축 전 파일 크기 정보를 저장해야합니다.
jpayne@68 1304 .
jpayne@68 1305 .SS "지원하지 않는 .lzma 파일"
jpayne@68 1306 \&\fB.lzma\fP 형식은 \fIlc\fP 값을 8까지 받아들이며, \fIlp\fP 값은 4까지 받아들입니다. LZMA 유틸리티는 어떤 \fIlc\fP 값과
jpayne@68 1307 \fIlp\fP 값을 받아들이고도 압축을 해제할 수 있지만, 파일을 만들 때는 늘 \fBlc=3\fP 값과 \fBlp=0\fP 값을 활용합니다. 다른
jpayne@68 1308 \fIlc\fP 값과 \fIlp\fP 값으로의 파일 압축은 \fBxz\fP와 LZMA SDK에서만 가능합니다.
jpayne@68 1309 .PP
jpayne@68 1310 liblzma의 LZMA1 필터 구현체에서는 \fIlc\fP 값과 \fIlp\fP 값의 합이 4를 넘어가면 안됩니다. 그래서 \fB.lzma\fP
jpayne@68 1311 파일의 경우 이 제한을 넘어가면 \fBxz\fP로 압축을 해제할 수 없습니다.
jpayne@68 1312 .PP
jpayne@68 1313 LZMA 유틸리티는 2^\fIn\fP (2의 승수)크기를 지닌 딕셔너리를 가진 \fB.lzma\fP 파일만 만들지만 받아들이는 파일의 딕셔너리
jpayne@68 1314 크기는 어떤 크기든 상관 없습니다. liblzma에서는 2^\fIn\fP, 2^\fIn\fP + 2^(\fIn\fP\-1) 딕셔너리 크기를 가진
jpayne@68 1315 \&\fB.lzma\fP 파일 만 받아들입니다. 이로 인해 \fB.lzma\fP 파일을 확인할 때 거짓 양성율이 늘어납니다.
jpayne@68 1316 .PP
jpayne@68 1317 모든 \fB.lzma\fP 파일을 liblzma 에서 받아들일 수 있도록 압축하기 때문에 이 제한이 실제로는 문제가 되지 않습니다.
jpayne@68 1318 .
jpayne@68 1319 .SS "뒤따라오는 쓰레기 값"
jpayne@68 1320 압축 해제할 때, LZMA 유틸리티는 \fB.lzma\fP 스트림 처음 부분 다음 나머지를 다 조용히 무시합니다. 대부분의 경우,
jpayne@68 1321 버그입니다. LZMA 유틸리티에서 \fB.lzma\fP 결합 파일 압축 해제를 지원하지 않음을 의미하기도 합니다.
jpayne@68 1322 .PP
jpayne@68 1323 \&\fB.lzma\fP 스트림 처음부분 바로 다음에 데이터가 남아있을 경우, \fBxz\fP 에서는 \fB\-\-single\-stream\fP 옵션을 사용하지
jpayne@68 1324 않으면 깨진 파일로 간주합니다. 이 동작으로 하여금 뒤따라오는 쓰레기 값을 무시하도록 간주하는 애매한 스크립트 동작을 깰 수가
jpayne@68 1325 있습니다.
jpayne@68 1326 .
jpayne@68 1327 .SH 참고
jpayne@68 1328 .
jpayne@68 1329 .SS "출력 결과물이 달라짐"
jpayne@68 1330 압축하지 않은 입력 파일로부터 얻어낸 정확한 압축 출력 결과물은 압축 옵션이 완전히 동일하더라도 XZ 유틸리티의 버전에 따라 달라질 수
jpayne@68 1331 있습니다. 파일 형식에 영향을 주지 않고 인코더 그 자체를 개선(더 빠르게 하거나 더 나은 압축율로)하기 때문입니다. XZ 유틸리티
jpayne@68 1332 버전이 동일하더라도 빌드 옵션을 달리하여 빌드 상태가 제각각인 경우 출력 결과물이 달라질 수 있습니다.
jpayne@68 1333 .PP
jpayne@68 1334 \fB\-\-rsyncable\fP 기능을 넣었을 경우 동일한 xz 버전에서 이전 파일과 새 파일로 별도로 압축하지 않는 한 결과 파일을 (두
jpayne@68 1335 파일이 서로 다른 파일이 아니므로) rsync 처리할 필요가 없습니다. 이 문제는 인코더 구현체 기능 개발이 끝나서 xz 버전이
jpayne@68 1336 다르더라도 안정적인 rsync 가능한 출력 결과물을 유지할 수 있을 때여야 해결할 수 있습니다.
jpayne@68 1337 .
jpayne@68 1338 .SS "내장 .xz 압축 해제 프로그램"
jpayne@68 1339 XZ 임베디드와 같은 내장 \fB.xz\fP 압축 해제 구현체는 지원 파일의 무결성 \fI검사\fP 형식을 \fInone\fP과 \fIcrc32\fP 이외의
jpayne@68 1340 설정으로 만들 필요가 없습니다. 기본값이 \fB\-\-check=crc64\fP일 경우에만, 임베디드 시스템에서 파일을 만들 때
jpayne@68 1341 \fB\-\-check=none\fP 또는 \fB\-\-check=crc32\fP 옵션을 사용해야합니다.
jpayne@68 1342 .PP
jpayne@68 1343 임베디드 시스템이 아니라면, 모든 \fB.xz\fP 형식 압축 해제 프로그램에서는 모든 \fI검사\fP 형식을 지원하거나, 일부 \fI검사\fP 방식을
jpayne@68 1344 지원하지 않는다면, 최소한, 무결성 검사로 검증하지 않고 압축을 해제할 수 있습니다.
jpayne@68 1345 .PP
jpayne@68 1346 XZ 임베디드는 BCJ 필터를 지원하지만, 기본 시작 오프셋만 지정할 수 있습니다.
jpayne@68 1347 .
jpayne@68 1348 .SH 예제
jpayne@68 1349 .
jpayne@68 1350 .SS 기본
jpayne@68 1351 \fIfoo\fP 파일을 기본 압축 수준 (\fB\-6\fP) 으로 \fIfoo.xz\fP 파일에 압축해 넣고, 압축 과정이 무사히 끝나면 \fIfoo\fP를
jpayne@68 1352 삭제합니다:
jpayne@68 1353 .RS
jpayne@68 1354 .PP
jpayne@68 1355 .nf
jpayne@68 1356 \f(CRxz foo\fR
jpayne@68 1357 .fi
jpayne@68 1358 .RE
jpayne@68 1359 .PP
jpayne@68 1360 \fIbar.xz\fP를 \fIbar\fP 에 압축을 해제한 후 압축 해제가 무사히 끝나도 \fIbar.xz\fP를 삭제하지 않습니다:
jpayne@68 1361 .RS
jpayne@68 1362 .PP
jpayne@68 1363 .nf
jpayne@68 1364 \f(CRxz \-dk bar.xz\fR
jpayne@68 1365 .fi
jpayne@68 1366 .RE
jpayne@68 1367 .PP
jpayne@68 1368 기본 사전 설정 \fB\-6\fP 보다는 느리지만, 압축 및 압축 해제시 메모리를 적게 차지(각각 48\ Mib, 5\MiB)는 \fB\-4e\fP
jpayne@68 1369 사전 설정(\fB\-4 \-\-extreme\fP)을 활용하여 \fIbaz.tar.xz\fP 파일을 만듭니다:
jpayne@68 1370 .RS
jpayne@68 1371 .PP
jpayne@68 1372 .nf
jpayne@68 1373 \f(CRtar cf \- baz | xz \-4e > baz.tar.xz\fR
jpayne@68 1374 .fi
jpayne@68 1375 .RE
jpayne@68 1376 .PP
jpayne@68 1377 압축 및 비압축 파일을 단일 명령으로 표준 출력에 압축해제할 수 있습니다:
jpayne@68 1378 .RS
jpayne@68 1379 .PP
jpayne@68 1380 .nf
jpayne@68 1381 \f(CRxz \-dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt\fR
jpayne@68 1382 .fi
jpayne@68 1383 .RE
jpayne@68 1384 .
jpayne@68 1385 .SS "다중 파일 병렬 압축"
jpayne@68 1386 GNU와 *BSD에서는 \fBfind\fP(1) 명령과 \fBxargs\fP(1) 명령으로 여러 파일의 압축을 병렬 처리할 수 있습니다:
jpayne@68 1387 .RS
jpayne@68 1388 .PP
jpayne@68 1389 .nf
jpayne@68 1390 \f(CRfind . \-type f \e! \-name '*.xz' \-print0 \e
jpayne@68 1391 | xargs \-0r \-P4 \-n16 xz \-T1\fR
jpayne@68 1392 .fi
jpayne@68 1393 .RE
jpayne@68 1394 .PP
jpayne@68 1395 \fBxargs\fP(1) 의 \fB\-P\fP 옵션으로 \fBxz\fP 프로세스의 병렬 처리 갯수를 지정합니다. \fB\-n\fP 옵션의 최적 값은 압축할
jpayne@68 1396 파일 수에 달려있습니다. 압축할 파일이 몇개밖에 없다면 1이어야합니다. 파일이 수천 수만개 정도 된다면 \fBxargs\fP(1) 이
jpayne@68 1397 어쨌든지간에 만들어낼 \fBxz\fP 프로세스의 겟수를 100으로 하거나 아니면 적당한 값을 지정하여 줄이는게 좋습니다.
jpayne@68 1398 .PP
jpayne@68 1399 \fBxz\fP에 \fB\-T1\fP옵션을 지정하면 단일\-스레드 모드로 강제합니다. \fBxargs\fP(1) 에서 병렬 처리 갯수를 제어할 수 있기
jpayne@68 1400 때문입니다.
jpayne@68 1401 .
jpayne@68 1402 .SS "로봇 모드"
jpayne@68 1403 여러 파일을 압축한 후 저장할 바이트 용량을 계산합니다:
jpayne@68 1404 .RS
jpayne@68 1405 .PP
jpayne@68 1406 .nf
jpayne@68 1407 \f(CRxz \-\-robot \-\-list *.xz | awk '/^totals/{print $5\-$4}'\fR
jpayne@68 1408 .fi
jpayne@68 1409 .RE
jpayne@68 1410 .PP
jpayne@68 1411 이 스크립트에서는 충분히 최신의 \fBxz\fP 명령을 사용하는지 알아보려 합니다. 다음 \fBsh\fP(1) 스크립트에서는 \fBxz\fP 도구의
jpayne@68 1412 버전 번호가 최소한 5.0.0인지 여부를 검사합니다. 이 방식은 \fB\-\-robot\fP 옵션을 지원하지 않는 오래된 베타 버전과도 호환성이
jpayne@68 1413 있습니다:
jpayne@68 1414 .RS
jpayne@68 1415 .PP
jpayne@68 1416 .nf
jpayne@68 1417 \f(CRif ! eval "$(xz \-\-robot \-\-version 2> /dev/null)" ||
jpayne@68 1418 [ "$XZ_VERSION" \-lt 50000002 ]; then
jpayne@68 1419 echo "Your xz is too old."
jpayne@68 1420 fi
jpayne@68 1421 unset XZ_VERSION LIBLZMA_VERSION\fR
jpayne@68 1422 .fi
jpayne@68 1423 .RE
jpayne@68 1424 .PP
jpayne@68 1425 \fBXZ_OPT\fP 환경 변수로 압축 해제시 메뢰 사용량 한계를 설정하지만, 한계 값을 이미 설정했다면, 값을 늘리지 않습니다:
jpayne@68 1426 .RS
jpayne@68 1427 .PP
jpayne@68 1428 .nf
jpayne@68 1429 \f(CRNEWLIM=$((123 << 20))\ \ # 123 MiB
jpayne@68 1430 OLDLIM=$(xz \-\-robot \-\-info\-memory | cut \-f3)
jpayne@68 1431 if [ $OLDLIM \-eq 0 \-o $OLDLIM \-gt $NEWLIM ]; then
jpayne@68 1432 XZ_OPT="$XZ_OPT \-\-memlimit\-decompress=$NEWLIM"
jpayne@68 1433 export XZ_OPT
jpayne@68 1434 fi\fR
jpayne@68 1435 .fi
jpayne@68 1436 .RE
jpayne@68 1437 .
jpayne@68 1438 .SS "개별 압축 필터 체인 설정"
jpayne@68 1439 개별 설정 필터 체인의 초단순 사용방식은 LZMA2 사전 설정 값을 별도로 설정하는 방식입니다. 사전 설정은 잠재적으로 쓸만한 압축
jpayne@68 1440 설정 조합만 다루기 때문에 꽤 쓸모가 있을 수도 있습니다.
jpayne@68 1441 .PP
jpayne@68 1442 \fB\-0\fP ... \fB\-9\fP 옵션의 설명에서 테이블의 CompCPU 컬럼과 \fB\-\-extreme\fP 옵션은 LZMA2 사전 설정을
jpayne@68 1443 개별적으로 맞췄을 때 쓸만할 수도 있습니다. 여기 관련내용을 테이블 둘로 정리해서 모아보았습니다:
jpayne@68 1444 .RS
jpayne@68 1445 .PP
jpayne@68 1446 .TS
jpayne@68 1447 tab(;);
jpayne@68 1448 c c
jpayne@68 1449 n n.
jpayne@68 1450 Preset;CompCPU
jpayne@68 1451 \-0;0
jpayne@68 1452 \-1;1
jpayne@68 1453 \-2;2
jpayne@68 1454 \-3;3
jpayne@68 1455 \-4;4
jpayne@68 1456 \-5;5
jpayne@68 1457 \-6;6
jpayne@68 1458 \-5e;7
jpayne@68 1459 \-6e;8
jpayne@68 1460 .TE
jpayne@68 1461 .RE
jpayne@68 1462 .PP
jpayne@68 1463 어떤 파일을 압축할 때 상당히 큰 딕셔너리(예: 32MiB)가 필요 하다는걸 알아채셨지만, \fBxz \-8\fP 명령이 압축할 때보다 더 빠른
jpayne@68 1464 속도로 압축하려 한다면, 더 큰 딕셔너리 사용을 위해 더 낮은 CompCPU 사전 설정 값(예: 1)으로 수정할 수 있습니다:
jpayne@68 1465 .RS
jpayne@68 1466 .PP
jpayne@68 1467 .nf
jpayne@68 1468 \f(CRxz \-\-lzma2=preset=1,dict=32MiB foo.tar\fR
jpayne@68 1469 .fi
jpayne@68 1470 .RE
jpayne@68 1471 .PP
jpayne@68 1472 각 파일에 대해, 위 명령은 압축율이 더 좋아지면서도 \fBxz \-6\fP보다 더 빨라집니다. 그러나, CompCPU 값을 낮게 유지하는
jpayne@68 1473 대신 큰 딕셔너리에서 일부 파일을 강조해야 합니다. 큰 딕셔너리가 대부분의 도움을 주는 매우 명백한 상황에서는 최소한 몇 메가바이트의
jpayne@68 1474 매우 유사한 각 파일이 아카이브에 들어갑니다. 딕셔너리 크기는 LZMA2가 연속으로 존재하는 각 파일의 유사성으로부터 얻는 장점을 취할
jpayne@68 1475 수 있을 때 일부 개별 파일보다 훨씬 더 커집니다.
jpayne@68 1476 .PP
jpayne@68 1477 압축 프로그램과 압축 해제 프로그램에서 메모리를 엄청 많이 사용해도 상관 없고, 파일을 수백 메가 바이트 메모리 용량을 활용하여
jpayne@68 1478 압축한다면, \fBxz \-9\fP 명령에 64MiB 용량을 초과하는 딕셔너리를 사용할 수 있게 하는 방법도 쓸만할 지도 모릅니다:
jpayne@68 1479 .RS
jpayne@68 1480 .PP
jpayne@68 1481 .nf
jpayne@68 1482 \f(CRxz \-vv \-\-lzma2=dict=192MiB big_foo.tar\fR
jpayne@68 1483 .fi
jpayne@68 1484 .RE
jpayne@68 1485 .PP
jpayne@68 1486 위 예제에서와 같이 \fB\-vv\fP (\fB\-\-verbose \-\-verbose\fP) 옵션을 사용하면 압축 및 압축 해제 과정에서 필요한 메모리
jpayne@68 1487 용량을 살펴보는데 요긴할 수 있습니다. 압축 해제한 파일 크기보다 더 큰 딕셔너리를 사용하면 불필요한 메모리 소모량이 발생하여 위
jpayne@68 1488 명령이 작은 파일에는 쓸모 없음을 기억하십시오.
jpayne@68 1489 .PP
jpayne@68 1490 때로는 압축 시간이 딱히 상관이 없을 수도 있습니다만, 압축 해제시 메모리 사용량을 적게 유지해야 할 수도 있습니다. 예를 들면,
jpayne@68 1491 임베디드 시스템에서 파일 압축을 해제할 수도 있습니다. 다음 명령의 경우 \fB\-6e\fP (\fB\-6 \-\-extreme\fP) 옵션을 기반
jpayne@68 1492 옵션을 사용하며 딕셔너리 크기를 64KiB만 사용하도록 제한합니다. 결과 파일은 XZ 임베디드(이게 \fB\-\-check=crc32\fP
jpayne@68 1493 옵션이 있는 이유)로 100KiB 메모리 용량을 활용하여 풀어낼 수 있습니다.
jpayne@68 1494 .RS
jpayne@68 1495 .PP
jpayne@68 1496 .nf
jpayne@68 1497 \f(CRxz \-\-check=crc32 \-\-lzma2=preset=6e,dict=64KiB foo\fR
jpayne@68 1498 .fi
jpayne@68 1499 .RE
jpayne@68 1500 .PP
jpayne@68 1501 가능한 한 수 바이트를 더 쥐어 짜내고 싶을 때, 리터럴 문맥 비트 수(\fIlc\fP)와 위치 비트 수(\fIpb\fP)를 조정하면 도움이 될
jpayne@68 1502 수도 있습니다. 리터럴 위치 비트 수(\fIlp\fP)를 조금 건드리는 것 또한 도움이 될 지도 모르겠지만 보통 \fIlc\fP 값과 \fIpb\fP
jpayne@68 1503 값이 더 중요합니다. 예를 들면, 소스 코드 저장 파일에는 US\-ASCII 텍스트가 대부분이기에, 다음과 같은 경우는 \fBxz \-6e\fP
jpayne@68 1504 명령을 실행했을 때부다는 아주 약간(거의 0.1% 수준) 작은 파일을 얻어낼 수도 있습니다(\fBlc=4\fP를 빼고도 시도해보십시오):
jpayne@68 1505 .RS
jpayne@68 1506 .PP
jpayne@68 1507 .nf
jpayne@68 1508 \f(CRxz \-\-lzma2=preset=6e,pb=0,lc=4 source_code.tar\fR
jpayne@68 1509 .fi
jpayne@68 1510 .RE
jpayne@68 1511 .PP
jpayne@68 1512 LZMA2와 다른 필터를 함께 사용하면 일부 파일 형식에 대해 압축율을 개선할 수 있습니다. 예를 들면 x86\-32 또는 x86\-64
jpayne@68 1513 공유 라이브러리를 x86 BCJ 필터를 활용하여 압축할 경우:
jpayne@68 1514 .RS
jpayne@68 1515 .PP
jpayne@68 1516 .nf
jpayne@68 1517 \f(CRxz \-\-x86 \-\-lzma2 libfoo.so\fR
jpayne@68 1518 .fi
jpayne@68 1519 .RE
jpayne@68 1520 .PP
jpayne@68 1521 참고로 필터 옵션의 순서는 상당히 중요합니다. \fB\-\-x86\fP을 \fB\-\-lzma\fP 이전에 지정하면 \fBxz\fP에서 오류가 나는데,
jpayne@68 1522 LZMA2 다음에는 어떤 필터든 설정할 수 없고, 옵션 체인상 마지막 필터로 x86 BCJ 필터를 사용할 수 없기 때문입니다.
jpayne@68 1523 .PP
jpayne@68 1524 LZMA2와 델타 필터는 비트맵 그림에 최적의 결과를 가져다줄 수 있습니다. PNG에 보통 안성맞춥인데, PNG에는 단순 델타 필터보단
jpayne@68 1525 약간 더 고급진 필터를 사용하지만, 실제 압축을 진행할 때는 Deflate를 사용하기 때문입니다.
jpayne@68 1526 .PP
jpayne@68 1527 예를 들어 이미지를 압축하지 않은 비압축 TIFF로 저장해야 하는 경우가 있습니다. 델타 필터의 거리 매개변수는 그림에서 픽셀당 바이트
jpayne@68 1528 수에 일치하도록 설정합니다. 예를 들면, 24비트 RGB 비트맵의 경우 \fBdist=3\fP 거리 매개변수 값을 설정해야 하며, LZMA2
jpayne@68 1529 압축시 3바이트 정렬을 따르도록 \fBpb=0\fP 값을 전달하는 방법도 바람직합니다:
jpayne@68 1530 .RS
jpayne@68 1531 .PP
jpayne@68 1532 .nf
jpayne@68 1533 \f(CRxz \-\-delta=dist=3 \-\-lzma2=pb=0 foo.tiff\fR
jpayne@68 1534 .fi
jpayne@68 1535 .RE
jpayne@68 1536 .PP
jpayne@68 1537 여러 이미지를 단일 아카이브로 넣고 싶다면(예: \fB.tar\fP), 모든 이미지에 대해 동일한 픽셀당 바이트 수가 들어가는 경우에도 델타
jpayne@68 1538 필터가 동작합니다.
jpayne@68 1539 .
jpayne@68 1540 .SH "추가 참조"
jpayne@68 1541 \fBxzdec\fP(1), \fBxzdiff\fP(1), \fBxzgrep\fP(1), \fBxzless\fP(1), \fBxzmore\fP(1),
jpayne@68 1542 \fBgzip\fP(1), \fBbzip2\fP(1), \fB7z\fP(1)
jpayne@68 1543 .PP
jpayne@68 1544 XZ 유틸리티: <https://tukaani.org/xz\-utils/>
jpayne@68 1545 .br
jpayne@68 1546 XZ 임베디드: <https://tukaani.org/xz/embedded/>
jpayne@68 1547 .br
jpayne@68 1548 LZMA SDK: <https://7\-zip.org/sdk.html>