Manpages

이 름

xz, unxz, xzcat, lzma, unlzma, lzcat - .xz 파 일 과 .lzma 파 일 을 압 축 또 는 압 축 해 제 합 니 다

요 약

xz [fI옵 션 ...] [<파 일 >...]

명 령 별 칭

unxz 명 령 은 xz --decompress 명 령 과 동 일 합 니 다 .
xzcat
명 령 은 xz --decompress --stdout 명 령 과 동 일 합 니 다 .
lzma
명 령 은 xz --format=lzma 명 령 과 동 일 합 니 다 .
unlzma
명 령 은 xz --format=lzma --decompress 명 령 과 동 일 합 니 다 .
lzcat
명 령 은 xz --format=lzma --decompress --stdout 명 령 과 동 일 합 니 다 .

파 일 압 축 을 해 제 해 야 하 는 셸 스 크 립 트 를 작 성 할 때 , unxzxzcat 이 름 대 신 xz 명 령 과 적 절 한 인 자 값 (xz -d 또 는 xz -dc)의 사 용 을 추 천 드 립 니 다 .

설 명

xzgzip(1)bzip2(1) 과 비 슷 한 명 령 행 문 법 을 지 닌 범 용 데 이 터 압 축 도 구 입 니 다 . 자 체 파 일 형 식 은 .xz 형 식 이 나 , LZMA 유 틸 리 티 에 서 사 용 하 는 예 전 .lzma 형 식 과 형 식 헤 더 가 없 는 RAW 압 축 스 트 림 도 지 원 합 니 다 . 게 다 가 , lzip에 서 활 용 하 는 .lz 형 식 압 축 해 제 도 지 원 합 니 다 .

파 일 에 대 한 xz 압 축 또 는 압 축 해 제 는 선 택 동 작 모 드 에 따 릅 니 다 . <파 일 > 값 이 주 어 졌 거 나 <파 일 > 값 이 -이 면 , xz 명 령 에 서 표 준 입 력 을 읽 고 처 리 한 데 이 터 를 표 준 출 력 에 기 록 합 니 다 . xz 에 서 는 터 미 널 에 서 활 용 할 경 우 압 축 데 이 터 를 표 준 압 축 으 로 기 록 하 는 동 작 을 거 절 (오 류 를 출 력 하 고 <파 일 >을 건 너 뜀 )합 니 다 . 이 와 비 슷 하 게 , xz 유 틸 리 티 를 터 미 널 에 서 실 행 하 면 표 준 입 력 의 압 축 데 이 터 읽 기 를 거 절 합 니 다 .

--stdout 을 지 정 하 지 않 는 한 , -가 아 닌 <파 일 >을 원 본 <파 일 > 이 름 에 서 가 져 온 새 파 일 이 름 으 로 기 록 합 니 다 :

압 축 할 때 , 대 상 파 일 형 식 의 접 미 사 (.xz or .lzma) 는 원 본 파 일 이 름 뒤 에 붙 어 대 상 파 일 이 름 이 됩 니 다 .

압 축 해 제 할 때 , .xz, .lzma, .lz 접 미 사 를 파 일 이 름 에 서 제 거 하 고 대 상 파 일 이 름 을 알 아 냅 니 다 . xz에 서 는 .txz, .tlz 접 미 사 도 인 식 하 며 , .tar 접 미 사 로 치 환 합 니 다 .

대 상 파 일 이 이 미 있 으 면 , 오 류 를 나 타 내 고 <파 일 >을 건 너 뜁 니 다 .

표 준 출 력 으 로 기 록 하 기 전 에 는 , xz는 경 고 를 나 타 내 며 , 다 음 조 건 에 만 족 할 경 우 <파 일 >을 건 너 뜁 니 다 :

<파 일 >이 일 반 파 일 이 아 닐 때 . 심 볼 릭 링 크 는 따 라 가 지 않 기 에 , 일 반 파 일 로 간 주 하 지 않 습 니 다 .

<파 일 >이 하 나 이 상 의 하 드 링 크 일 떄 .

<파 일 >에 setuid, setgid, 끈 적 이 비 트 집 합 이 붙 어 있 을 떄 .

동 작 모 드 를 압 축 으 로 설 정 하 고 , <파 일 >은 대 상 파 일 형 식 의 접 미 사 를 이 미 붙 였 을 때 (.xz 형 식 으 로 압 축 하 면 .xz 또 는 .txz, .lzma 형 식 으 로 압 축 하 면 .lzma 또 는 .tlz).

동 작 모 드 를 압 축 해 제 로 설 정 하 고 , <파 일 >에 지 원 파 일 형 식 접 미 사 (.xz, .txz, .lzma, .tlz, .lz)를 붙 이 지 않 았 을 때 .

<파 일 > 의 압 축 또 는 압 축 해 제 를 성 공 하 고 나 면 , xz는 소 유 자 , 소 유 그 룹 , 권 한 , 접 근 시 각 , 수 정 시 각 정 보 를 원 본 <파 일 >에 서 대 상 파 일 로 그 대 로 복 사 합 니 다 . 그 룹 정 보 복 사 에 실 패 하 면 , 권 한 을 수 정 하 여 원 본 <파 일 >에 접 근 권 한 이 없 는 사 용 자 가 대 상 파 일 로 접 근 하 지 못 하 게 합 니 다 . xz는 아 직 접 근 제 어 목 록 이 나 확 장 속 성 등 의 기 타 메 타 데 이 터 를 복 사 하 는 기 능 은 지 원 하 지 않 습 니 다 .

대 상 파 일 을 온 전 히 닫 고 나 면 , --keep 옵 션 을 지 원 하 지 않 았 을 경 우 원 본 <파 일 >을 제 거 합 니 다 . 원 본 <파 일 >은 출 력 을 표 준 출 력 으 로 기 록 했 거 나 오 류 가 발 생 했 을 경 우 제 거 하 지 않 습 니 다 .

xz 프 로 세 스 에 SIGINFO 시 그 널 또 는 SIGUSR1 시 그 널 을 보 내 면 표 준 출 력 으 로 진 행 정 보 를 출 력 합 니 다 . 표 준 오 류 가 터 미 널 일 경 우 일 경 우 에 만 제 한 하 며 --verbose 옵 션 을 지 정 하 면 진 행 표 시 줄 을 자 동 으 로 나 타 냅 니 다 .

메 모 리 사 용
xz
메 모 리 사 용 은 수 백 킬 로 바 이 트 로 시 작 하 여 수 기 가 바 이 트 까 지 압 축 설 정 에 따 라 다 릅 니 다 . 압 축 해 제 프 로 그 램 이 필 요 로 하 는 메 모 리 공 간 을 결 정 하 는 파 일 압 축 시 에 설 정 값 을 활 용 합 니 다 . 보 통 압 축 해 제 프 로 그 램 은 파 일 을 만 들 때 , 압 축 프 로 그 램 메 모 리 사 용 량 의 5% 에 서 20% 정 도 필 요 합 니 다 . 예 를 들 면 , xz -9로 압 축 한 파 일 압 축 해 제 시 현 재 65MiB 메 모 리 용 량 이 필 요 합 니 다 . 여 전 하 게 도 , 압 축 해 제 시 수 기 가 바 이 트 의 메 모 리 가 필 요 한 .xz 파 일 에 도 가 능 한 이 야 기 입 니 다 .

특 히 이 전 시 스 템 사 용 자 의 경 우 메 모 리 사 용 량 이 엄 청 나 게 늘 어 나 는 점 에 짜 증 이 날 수 있 습 니 다 . 이 런 불 편 한 상 황 을 피 하 기 위 해 , xz에 기 본 적 으 로 비 활 성 상 태 인 내 장 메 모 리 사 용 제 한 기 능 을 넣 었 습 니 다 . 일 부 운 영 체 제 에 서 처 리 중 메 모 리 사 용 을 제 한 하 는 수 단 을 제 공 하 긴 하 지 만 , 여 기 에 의 지 하 기 에 는 충 분 히 유 연 하 지 않 습 니 다 (예 를 들 면 , ulimit(1)을 사 용 하 면 가 상 메 모 리 를 제 한 하 여 mmap(2)을 먹 통 으 로 만 듭 니 다 ).

메 모 리 사 용 제 한 기 능 은 --memlimit=<제 한 용 량 > 명 령 행 옵 션 으 로 사 용 할 수 있 습 니 다 . 종 종 XZ_DEFAULTS=--memlimit=150MiB와 같 이 XZ_DEFAULTS 환 경 변 수 를 설 정 하 여 제 한 기 능 을 켜 는 게 더 편 합 니 다 . --memlimit-compress=<제 한 용 량 > 옵 션 과 --memlimit-decompress=<제 한 용 량 > 옵 션 을 활 용 하 여 압 축 및 압 축 해 제 시 별 도 로 한 계 값 을 설 정 할 수 있 습 니 다 . 이 두 가 지 옵 션 의 XZ_DEFAULTS 환 경 변 수 밖 에 서 의 사 용 은 , xz를 단 일 실 행 할 때 압 축 및 압 축 해 제 동 작 을 동 시 에 수 행 하 지 않 으 며 , 앞 서 언 급 한 두 가 지 옵 션 을 명 령 행 에 입 력 하 기 에 는 --memlimit=<제 한 용 량 >(또 는 -M <제 한 용 량 >)이 더 짧 기 때 문 에 별 로 쓸 모 가 없 습 니 다 .

압 축 해 제 시 메 모 리 사 용 제 한 지 정 한 계 를 초 과 하 면 , xz 유 틸 리 티 에 서 오 류 를 나 타 내 며 파 일 압 축 해 제 는 실 패 합 니 다 . 압 축 을 실 행 할 때 사 용 제 한 지 정 한 계 를 넘 어 서 면 xz에 서 는 설 정 값 을 줄 여 서 어 쨌 든 한 계 를 넘 지 못 하 게 합 니 다 (--format=raw 옵 션 또 는 --no-adjust 옵 션 사 용 시 제 외 ). 설 정 한 계 값 이 엄 청 작 지 않 은 이 상 이 방 식 대 로 처 리 하 면 어 쨌 든 실 패 하 지 않 습 니 다 . 설 정 값 조 정 은 압 축 래 벨 사 전 설 정 과 일 치 하 지 않 을 때 단 계 적 으 로 진 행 하 는 데 , 이 를 테 면 , xz -9 명 령 수 행 에 필 요 한 양 보 다 한 계 값 이 약 간 작 으 면 , 설 정 값 을 xz -8에 못 미 치 게 약 간 줄 여 서 진 행 합 니 다 .

.xz 파 일 결 합 및 패 딩
.xz
파 일 을 있 는 그 대 로 합 칠 수 있 습 니 다 . xz.xz 파 일 을 단 독 파 일 일 때 처 럼 압 축 해 제 합 니 다 .

결 합 부 분 과 마 지 막 부 분 뒤 에 패 딩 을 추 가 할 수 있 습 니 다 . 패 딩 은 널 바 이 트 로 구 성 해 야 하 며 패 딩 길 이 는 4바 이 트 로 구 성 해 야 합 니 다 . 512 바 이 트 블 록 으 로 파 일 크 기 를 이 루 는 매 체 에 .xz 파 일 을 저 장 했 을 경 우 에 요 긴 할 수 있 습 니 다 .

.lzma 파 일 또 는 원 시 스 트 림 의 경 우 결 합 과 패 딩 을 허 용 하 지 않 습 니 다 .

옵 션

정 수 접 두 사 와 별 도 값
정 수 인 자 값 이 필 요 한 대 부 분 위 치 에 서 는 , 큰 정 수 값 을 나 타 내 기 쉽 게 하 도 록 추 가 접 미 사 를 지 원 합 니 다 . 정 수 와 접 미 사 사 이 에 어 떤 공 백 이 있 으 면 안 됩 니 다 .

KiB

1,024 (2^10) 배 수 정 수 값 . Ki, k, kB, K, KB 단 위 를 KiB 동 의 어 로 받 아 들 입 니 다 .

MiB

1,048,576 (2^20) 배 수 정 수 값 . Mi, m, M, MB 단 위 를 MiB 동 의 어 로 받 아 들 입 니 다 .

GiB

1,073,741,824 (2^30) 배 수 정 수 값 . Gi, g, G, GB 단 위 를 GiB 동 의 어 로 받 아 들 입 니 다 .

특 수 값 max는 옵 션 에 서 지 원 하 는 정 수 최 대 값 을 나 타 낼 때 사 용 할 수 있 습 니 다 .

동 작 모 드
여 러 동 작 모 드 를 보 여 드 리 겠 습 니 다 만 , 마 지 막 에 주 어 진 동 작 모 드 로 동 작 합 니 다 .
-z
, --compress

압 축 합 니 다 . 어 떤 동 작 모 드 옵 션 도 지 정 하 지 않 고 다 른 동 작 모 드 를 명 령 행 에 따 로 지 정 하 지 않 았 다 면 이 동 작 모 드 는 기 본 입 니 다 (예 : unxz--decompress를 암 시 ).

-d, --decompress, --uncompress

압 축 을 해 제 합 니 다 .

-t, --test

압 축 <파 일 >의 무 결 성 을 시 험 해 봅 니 다 . 이 옵 션 은 압 축 해 제 데 이 터 를 표 준 출 력 으 로 기 록 하 는 대 신 버 린 다 는 점 을 제 외 하 고 --decompress --stdout과 동 일 합 니 다 . 어 떤 파 일 도 만 들 거 나 제 거 하 지 않 습 니 다 .

-l, --list

압 축 <파 일 > 정 보 를 출 력 합 니 다 . 압 축 해 제 출 력 을 내 보 내 지 않 으 며 , 어 떤 파 일 도 만 들 거 나 제 거 하 지 않 습 니 다 . 이 조 회 모 드 에 서 , 프 로 그 램 은 표 준 입 력 또 는 기 타 탐 색 불 가 능 한 원 본 에 서 압 축 데 이 터 를 읽 을 수 없 습 니 다 .

<파 일 > 기 본 정 보 를 파 일 당 한 줄 씩 기 본 으 로 보 여 줍 니 다 . 더 자 세 한 정 보 를 보 려 면 --verbose 옵 션 을 사 용 하 십 시 오 . 더 자 세 한 정 보 는 --verbose 옵 션 을 두 번 사 용 하 면 되 지 만 , 추 가 정 보 를 더 많 이 가 져 오 면 서 탐 색 횟 수 가 늘 어 나 는 문 제 로 인 해 느 려 질 수 있 습 니 다 . 세 부 출 력 너 비 는 80 문 자 를 초 과 하 며 , 예 를 들 어 출 력 을 파 이 핑 한 다 면 , 터 미 널 이 충 분 히 너 비 가 넓 지 못 할 경 우 less -S 명 령 이 편 리 할 수 있 습 니 다 .

정 확 한 출 력 은 xz 버 전 과 다 른 로 캘 에 따 라 바 뀔 수 있 습 니 다 . 기 계 판 독 용 출 력 시 --robot --list 옵 션 을 사 용 합 니 다 .

동 작 수 정 자
-k
, --keep

입 력 파 일 을 삭 제 하 지 않 습 니 다 .

xz 5.2.6 부 터 는 이 옵 션 으 로 입 력 파 일 이 일 반 파 일 을 참 조 하 는 심 볼 릭 링 크 나 하 나 이 상 의 하 드 링 크 , 내 지 는 setuid, setgid, 끈 적 이 비 트 세 트 를 설 정 한 상 태 라 도 압 축 하 거 나 압 축 을 풀 수 있 습 니 다 . setuid, setgid, 끈 적 이 비 트 는 대 상 파 일 에 복 사 하 지 않 습 니 다 . 이 전 버 전 에 서 는 --force 옵 션 을 지 정 했 을 때 만 가 능 했 습 니 다 .

-f, --force

이 옵 션 은 몇 가 지 동 작 에 영 향 을 줍 니 다 :

대 상 파 일 이 이 미 있 으 면 , 압 축 또 는 압 축 해 제 전 삭 제 합 니 다 .

입 력 파 일 이 일 반 파 일 을 참 조 하 는 심 볼 릭 링 크 나 하 나 이 상 의 하 드 링 크 , 내 지 는 setuid, setgid, 끈 적 이 비 트 세 트 를 설 정 한 상 태 라 도 압 축 또 는 압 축 해 제 를 진 행 합 니 다 . setuid, setgid, 끈 적 이 비 트 는 대 상 파 일 에 복 사 하 지 않 습 니 다

--decompress --stdout 옵 션 을 같 이 사 용 하 는 상 황 에 서 xz 명 령 이 원 본 파 일 의 형 식 을 알 아 내 지 못 할 때 , 원 본 파 일 의 사 본 을 표 준 출 력 으 로 보 냅 니 다 . 이 렇 게 하 면 xzcat --force 명 령 을 xz 명 령 으 로 압 축 하 지 않 은 파 일 에 대 해 cat(1) 을 사 용 하 는 것 처 럼 사 용 할 수 있 습 니 다 . 참 고 로 나 중 에 , xz에 서 xz로 하 여 금 여 러 형 식 의 파 일 을 표 준 출 력 으 로 복 사 하 는 대 신 압 축 을 해 제 하 도 록 새 압 축 파 일 형 식 을 지 원 할 예 정 입 니 다 . --format=<형 식 > 옵 션 은 xz 명 령 에 단 일 파 일 형 식 만 압 축 해 제 하 도 록 제 한 할 때 사 용 할 수 있 습 니 다 .

-c, --stdout, --to-stdout

파 일 대 신 표 준 출 력 으 로 압 축 또 는 압 축 해 제 한 데 이 터 를 기 록 합 니 다 . --keep를 생 략 했 습 니 다 .

--single-stream

처 음 .xz 스 트 림 만 압 축 해 제 하 며 , 스 트 림 에 뒤 따 라 오 는 나 머 지 입 력 데 이 터 는 조 용 히 무 시 합 니 다 . 보 통 뒤 따 라 오 는 쓰 레 기 값 에 대 해 서 는 xz 에 서 오 류 를 나 타 냅 니 다 .

xz.lzma 파 일 또 는 원 시 스 트 림 에 서 온 하 나 이 상 의 스 트 림 에 대 해 압 축 해 제 동 작 을 취 하 지 않 지 만 , 이 옵 션 을 사 용 하 면 xz에 서 .lzma 파 일 또 는 원 시 스 트 림 을 처 리 한 다 음 에 뒤 따 라 오 는 데 이 터 를 무 시 하 도 록 합 니 다 .

이 옵 션 은 동 작 모 드 가 --decompress 또 는 --test가 아 니 면 동 작 에 아 무 런 영 향 을 주 지 않 습 니 다 .

--no-sparse

희 소 파 일 을 만 들 지 않 습 니 다 . 기 본 적 으 로 일 반 파 일 로 압 축 해 제 할 경 우 xz 에 서 는 압 축 해 제 한 파 일 에 이 진 0값 이 길 게 늘 어 질 경 우 희 소 배 열 파 일 을 만 들 려 고 합 니 다 . 표 준 출 력 의 내 용 길 이 만 큼 연 결 한 일 반 파 일 로 기 록 할 때 도 동 작 하 며 희 소 파 일 을 만 드 는 동 안 아 무 런 문 제 가 나 타 나 지 않 게 각 각 의 추 가 조 건 을 만 족 합 니 다 . 희 소 파 일 을 만 들 면 디 스 크 공 간 을 절 약 할 수 있 으 며 디 스 크 입 출 력 을 줄 여 압 축 해 제 속 도 를 올 릴 수 있 습 니 다 .

-S .suf, --suffix=.suf

압 축 할 때 , 대 상 파 일 의 접 두 사 를 .xz 또 는 .lzma 대 신 .suf로 사 용 하 십 시 오 . 표 준 출 력 으 로 기 록 하 지 않 고 원 본 파 일 에 .suf 접 두 사 가 붙 어 있 으 면 , 경 고 를 나 타 내 고 해 당 파 일 을 건 너 뜁 니 다 .

압 축 해 제 할 때 , .suf 접 미 사 로 파 일 을 인 식 하 기 도 하 고 , .xz, .txz, .lzma, .tlz, .lz 접 미 사 가 붙 은 파 일 도 인 식 합 니 다 . 원 본 파 일 에 .suf 접 미 사 가 붙 어 있 으 면 , 해 당 접 미 사 를 제 거 하 여 대 상 파 일 이 름 을 알 아 냅 니 다 .

원 시 스 트 림 압 축 및 압 축 해 제 시 (--format=raw) 원 시 스 트 림 에 기 본 접 미 사 가 없 기 때 문 에 , 표 준 출 력 으 로 기 록 하 지 않 는 한 접 미 사 를 반 드 시 지 정 해 야 합 니 다 .

--files[=<파 일 >]

<파 일 >에 서 처 리 할 파 일 이 름 을 읽 습 니 다 . <파 일 >을 생 략 하 면 파 일 이 름 은 표 준 입 력 에 서 불 러 옵 니 다 . 파 일 이 름 은 개 행 문 자 로 끝 나 야 합 니 다 . 대 시 문 자 (-)는 일 반 파 일 이 름 으 로 취 급 하 며 표 준 입 력 을 의 미 하 지 않 습 니 다 . 파 일 이 름 을 명 령 행 인 자 로 지 정 하 면 , <파 일 >에 서 파 일 이 름 을 읽 어 들 이 기 전 해 당 명 령 행 인 자 를 먼 저 처 리 합 니 다 .

--files0[=<파 일 >]

각 파 일 이 름 이 널 문 자 로 끝 나 야 한 다 는 점 만 제 외 하 면 --files[=<파 일 >] 옵 션 과 동 일 합 니 다 .

기 본 파 일 형 식 및 압 축 옵 션
-F
format, --format=<형 식 >

압 축 또 는 압 축 해 제 파 일 <형 식 >을 지 정 합 니 다 :

auto

기 본 값 입 니 다 . 압 축 할 때 , autoxz의 기 본 동 작 과 동 일 합 니 다 . 압 축 을 해 제 할 때 , 입 력 파 일 형 식 을 자 동 으 로 찾 습 니 다 . 참 고 로 원 시 스 트 림 (--format=raw)의 경 우 자 동 으 로 찾 을 수 없 습 니 다 .

xz

.xz 파 일 형 식 으 로 압 축 하 거 나 , 압 축 해 제 시 .xz 파 일 만 받 아 들 입 니 다 .

lzma, alone

이 전 .lzma 파 일 형 식 으 로 압 축 하 거 나 , 압 축 해 제 시 .lzma 파 일 만 받 아 들 입 니 다 . alone 대 체 명 령 은 LZMA 유 틸 리 티 하 위 호 환 성 을 목 적 으 로 제 공 합 니 다 .

lzip

압 축 해 제 시 .lz 파 일 만 받 아 들 입 니 다 . 압 축 은 지 원 하 지 않 습 니 다 .

.lz 형 식 버 전 0과 비 확 장 버 전 1을 지 원 합 니 다 . 버 전 0파 일 은 lzip 1.3 이 전 에 서 만 만 듭 니 다 . 일 반 적 이 진 않 지 만 일 부 파 일 의 경 우 이 형 식 과 관 련 된 원 본 패 키 지 로 보 관 한 파 일 을 찾 을 수 도 있 습 니 다 . 개 인 적 으 로 이 형 식 으 로 압 축 한 오 래 된 개 인 파 일 을 가 지 고 있 을 수 도 있 습 니 다 . 형 식 버 전 0 압 축 해 제 지 원 은 lzip 1.18에 서 제 거 했 습 니 다 .

lzip 1.4 이 상 에 서 는 버 전 1형 식 의 파 일 을 만 듭 니 다 . 형 식 버 전 1로 의 동 기 화 제 거 마 커 확 장 은 lzip 1.6에 추 가 했 습 니 다 . 이 확 장 은 거 의 쓰 지 않 으 며 xz 에 서 조 차 도 지 원 하 지 않 습 니 다 (손 상 된 입 력 파 일 로 진 단 함 ).

raw

원 시 스 트 림 으 로 압 축 하 거 나 압 축 을 해 제 합 니 다 (헤 더 없 음 ). 고 급 사 용 자 전 용 입 니 다 . 원 시 스 트 림 을 디 코 딩 하 려 면 , --format=raw 옵 션 을 사 용 하 고 분 명 하 게 필 터 체 인 을 지 정 하 여 컨 테 이 너 헤 더 에 필 요 한 정 보 를 저 장 하 게 끔 해 야 합 니 다 .

-C <검 사 방 식 >, --check=<검 사 방 식 >

무 결 성 검 사 방 식 을 지 정 합 니 다 . 검 사 방 식 은 .xz 파 일 에 저 장 하 며 압 축 해 제 데 이 터 를 계 산 합 니 다 . 이 옵 션 은 .xz 형 식 으 로 압 축 할 때 만 효 력 이 있 습 니 다 : .lzma 형 식 은 무 결 성 겁 사 를 지 원 하 지 않 습 니 다 . 무 결 성 검 사 는 .xz 파 일 압 축 을 풀 었 을 때 에 검 사 합 니 다 .

지 원 검 사 형 식 :

none

어 떤 경 우 에 도 무 결 성 검 사 계 산 을 수 행 하 지 않 습 니 다 . 보 통 바 람 직 하 지 못 한 생 각 입 니 다 . 데 이 터 무 결 성 을 다 른 방 식 으 로 라 도 검 증 해 야 하 는 상 황 이 면 쓸 만 할 수 있 습 니 다 .

crc32

IEEE-802.3 (이 더 넷 )의 다 항 연 산 으 로 CRC32를 계 산 합 니 다 .

crc64

ECMA-182의 다 항 식 연 산 으 로 CRC64를 계 산 합 니 다 . 이 동 작 이 기 본 동 작 이 기 때 문 에 CRC32가 깨 진 파 일 을 찾 을 때 보 다 는 좀 낮 은 편 이 며 속 도 차 이 도 거 의 없 습 니 다 .

sha256

SHA-256 해 시 를 계 산 합 니 다 . CRC32와 CRC64 보 다 는 좀 느 립 니 다 .

.xz 헤 더 무 결 성 은 항 상 CRC32로 검 증 하 빈 다 . 이 를 바 꾸 거 나 It is not possible to change or disable it.

--ignore-check

압 축 데 이 터 를 압 축 해 제 할 경 우 압 축 데 이 터 의 무 결 성 검 증 을 진 행 하 지 않 습 니 다 . .xz 헤 더 의 CRC32 값 은 그 래 도 여 전 히 보 통 방 식 으 로 검 증 합 니 다 .

이 옵 션 이 정 확 히 무 슨 동 작 을 하 는 지 알 기 전 에 는 사 용 하 지 마 십 시 오 . 이 옵 션 을 사 용 하 는 타 당 한 이 유 로 :

깨 진 .xz 파 일 에 서 데 이 터 복 구 를 시 도 합 니 다 .

압 축 해 제 속 도 를 늘 립 니 다 . SHA-256 또 는 압 축 파 일 에 들 어 간 그 무 언 가 를 엄 청 빨 리 처 리 합 니 다 . 다 른 방 식 으 로 파 일 무 결 성 을 검 증 해 야 하 는 목 적 이 아 니 라 면 이 옵 션 을 사 용 하 지 않 는 게 좋 습 니 다 .

-0 ... -9

압 축 사 전 설 정 수 준 을 선 택 합 니 다 . 기 본 값 은 -6입 니 다 . 다 중 수 준 을 지 정 하 면 가 장 마 지 막 수 준 옵 션 을 적 용 합 니 다 . 개 별 필 터 체 인 을 이 미 지 정 했 다 면 , 압 축 사 전 설 정 수 준 값 을 설 정 할 때 개 별 필 터 체 인 을 정 리 합 니 다 .

사 전 설 정 간 차 이 는 gzip(1)bzip2(1)을 사 용 할 때 보 다 더 비 중 을 차 지 합 니 다 . 선 택 한 압 축 설 정 은 압 축 해 제 시 필 요 한 메 모 리 사 용 량 을 셜 정 하 므 로 사 전 설 정 수 준 값 을 너 무 높 게 지 정 하 면 RAM 용 량 이 적 은 오 래 된 시 스 템 에 서 파 일 압 축 해 제 시 실 패 할 수 있 습 니 다 . 게 다 가 , gzip(1)bzip2(1)에 서 처 럼 종 종 모 든 동 작 에 -9를 몰 래 활 용 하 는 건 바 람 직 하 지 않 습 니 다 .

-0 ... -3

동 작 이 빠 른 사 전 설 정 부 류 입 니 다 . -0은 때 로 는 gzip -9 명 령 보 다 압 축 율 이 훨 씬 우 수 하 면 서 도 더 빠 릅 니 다 . 더 큰 값 은 보 통 bzip2(1) 명 령 과 비 교 했 을 떄 압 축 결 과 가 압 축 데 이 터 에 따 라 달 라 지 더 라 도 , 비 교 할 법 한 속 도 또 는 더 나 은 압 축 율 을 보 입 니 다 .

-4 ... -6

오 래 된 시 스 템 에 서 조 차 도 압 축 해 제 프 로 그 램 의 적 절 한 메 모 리 사 용 량 을 보 이 면 서 양 호 하 거 나 최 적 의 압 축 율 을 보 여 줍 니 다 . -6 옵 션 은 압 축 해 제 시 메 모 리 사 용 량 이 16MiB 밖 에 안 되 기 때 문 에 파 일 을 배 포 할 때 최 적 의 선 택 인 기 본 값 입 니 다 . (-5e 또 는 -6e도 역 시 고 려 할 만 합 니 다 . --extreme을 참 고 하 십 시 오 .)

-7 ... -9

-6과 비 슷 하 지 만 압 축 및 압 축 해 제 시 요 구 메 모 리 사 용 량 이 더 높 습 니 다 . 압 축 파 일 이 각 각 8MiB, 16MiB, 32MiB 보 다 클 경 우 에 만 쓸 만 한 옵 션 입 니 다 .

동 일 한 하 드 웨 어 에 서 , 압 축 해 제 속 도 는 압 축 한 데 이 터 의 초 당 정 적 바 이 트 처 리 수 의 어 림 평 균 입 니 다 . 다 시 말 해 , 압 축 율 을 더 올 리 면 , 압 축 해 제 속 도 도 역 시 올 라 갑 니 다 . 이 는 곧 초 당 비 압 축 데 이 터 출 력 양 이 달 라 질 수 있 단 뜻 입 니 다 .

다 음 표 에 사 전 설 정 기 능 을 정 리 했 습 니 다 :

컬 럼 설 명 :

DictSize는 LZMA2 딕 셔 너 리 크 기 입 니 다 . 압 축 해 제 파 일 의 크 기 보 다 딕 셔 너 리 에 서 사 용 하 는 낭 비 메 모 리 용 량 입 니 다 . 실 제 로 필 요 하 지 않 은 -7 ... -9 사 전 설 정 값 을 피 해 야 하 는 적 절 한 이 유 이 기 도 합 니 다 . -6 이 하 에 서 는 소 모 메 모 리 양 이 충 분 히 적 거 나 따 로 신 경 쓸 필 요 가 없 습 니 다 .

CompCPU는 압 축 속 도 에 영 향 을 주 는 LZMA2 설 정 의 단 순 화 표 기 값 입 니 다 . 딕 셔 너 리 크 기 는 속 도 에 도 영 향 을 주 기 때 문 에 CompCPU는 -6 ... -9 수 준 값 과 동 일 한 데 , 고 수 준 값 은 여 전 히 조 금 더 느 려 질 수 있 습 니 다 . 느 려 지 는 만 큼 압 축 율 은 가 능 한 한 더 좋 아 집 니 다 . --extreme을 참 고 하 십 시 오 .

CompMem은 단 일 -스 레 드 모 드 에 서 필 요 한 압 축 프 로 그 램 의 메 모 리 점 유 용 량 입 니 다 . xz 버 전 에 따 라 다 를 수 있 습 니 다 . 앞 으 로 도 입 할 다 중 -스 레 드 모 드 의 메 모 리 사 용 량 은 단 일 -스 레 드 모 드 에 서 의 그 것 보 다 는 훨 씬 늘 어 납 니 다 .

DecMem은 압 축 해 제 프 로 그 램 의 메 모 리 점 유 용 량 입 니 다 . 이 는 곧 , 압 축 해 제 프 로 그 램 에 서 필 요 한 메 모 리 사 용 량 을 압 축 설 정 에 서 결 정 한 다 는 의 미 가 들 어 있 습 니 다 . 정 확 한 압 축 해 제 프 로 그 램 의 메 모 리 사 용 량 은 LZMA2 딕 셔 너 리 크 기 보 다 는 조 금 많 지 만 테 이 블 의 값 은 MiB 용 량 으 로 완 전 히 반 올 림 한 값 입 니 다 .

-e, --extreme

기 대 하 는 만 큼 의 좀 더 나 은 압 축 율 을 확 보 하 려 선 택 한 압 축 사 전 설 정 수 준 의 느 린 변 형 옵 션 을 사 용 하 지 만 , 재 수 없 는 와 중 에 골 로 가 는 경 우 가 생 기 기 도 합 니 다 . 압 축 해 제 프 로 그 램 의 메 모 리 사 용 에 는 영 향 을 주 지 않 지 만 , 압 축 프 로 그 램 의 메 모 리 사 용 량 은 -0 ... -3 사 전 설 정 수 준 에 서 약 간 더 올 라 갈 뿐 입 니 다 .

4MiB와 8MiB 두 가 지 딕 셔 너 리 용 량 설 정 이 있 기 때 문 에 -3e-5e 사 전 설 정 을 (CompCPU 수 치 를 낮 춰 서 ) 각 각 -4e-6e 보 다 약 간 더 빠 르 게 설 정 할 수 있 습 니 다 . 이 런 식 으 로 두 사 전 설 정 이 동 일 하 지 않 습 니 다 .

예 를 들 면 , 8MiB 딕 셔 너 리 를 활 용 하 는 네 가 지 사 전 설 정 이 있 다 고 할 때 , 빠 른 순 으 로 설 정 을 나 열 하 자 면 , -5, -6, -5e, -6e 입 니 다 .

--fast

--best

이 옵 션 은 -0-9의 별 칭 으 로 각 각 오 해 할 수 있 습 니 다 . LZMA 유 틸 리 티 의 하 위 호 환 성 을 목 적 으 로 제 공 합 니 다 . 이 옵 션 사 용 은 피 하 십 시 오 .

--block-size=<크 기 >

.xz 형 식 으 로 압 축 할 때 , 입 력 데 이 터 를 <크 기 > 바 이 트 블 록 으 로 입 력 데 이 터 를 쪼 갭 니 다 . 각 각 의 블 록 은 다 중 -스 레 드 방 식 으 로 처 리 할 수 있 고 임 의 접 근 압 축 해 제 가 능 성 을 제 한 할 수 있 게 개 별 적 으 로 압 축 처 리 합 니 다 . 이 옵 션 은 보 통 다 중 -스 레 드 모 드 에 서 기 본 블 록 크 기 를 지 정 할 때 사 용 하 지 만 , 단 일 -스 레 드 모 드 에 서 도 사 용 할 수 있 습 니 다 .

다 중 -스 레 드 모 드 에 서 는 약 3배 용 량 의 <크 기 > 바 이 트 만 큼 각 스 레 드 별 로 입 출 력 버 퍼 링 용 공 간 을 할 당 합 니 다 . 기 본 <크 기 >는 LZMA2 딕 셔 너 리 크 기 또 는 1MiB 중 가 장 큰 쪽 의 세 배 입 니 다 . 보 통 바 람 직 한 값 으 로 LZMA2 딕 셔 너 리 크 기 나 최 소 한 1MiB의 2–4배 입 니 다 . LZMA2 딕 셔 너 리 크 기 보 다 작 은 <크 기 > 는 램 의 소 모 적 사 용 공 간 으 로 할 당 하 는 데 LZMA2 딕 셔 너 리 버 퍼 를 할 당 한 용 량 크 기 전 체 를 다 사 용 하 지 않 기 때 문 입 니 다 . 블 록 크 기 는 블 록 헤 더 에 저 장 하 며 , 블 록 헤 더 는 xz 차 기 버 전 에 서 다 중 -스 레 드 압 축 해 제 시 활 용 할 예 정 입 니 다 .

단 일 -스 레 드 모 드 에 서 는 기 본 적 으 로 블 록 쪼 개 기 를 하 지 않 습 니 다 . 이 옵 션 을 설 정 한 다 고 해 서 메 모 리 사 용 에 영 향 을 주 지 는 않 습 니 다 . 블 록 헤 더 에 크 기 정 보 를 저 장 하 지 않 기 때 문 에 단 일 -스 레 드 모 드 에 서 만 든 파 일 은 다 중 -스 레 드 모 드 에 서 만 든 파 일 과 동 일 하 지 않 습 니 다 . 크 기 정 보 의 누 락 은 또 한 xz 차 기 버 전 에 서 다 중 -스 레 드 모 드 에 서 압 축 해 제 가 불 가 능 함 을 의 미 하 기 도 합 니 다 .

--block-list=<크 기 >

.xz 형 식 으 로 압 축 할 때 , 압 축 하 지 않 은 데 이 터 에 주 어 진 처 리 시 간 간 격 이 후 에 새 블 록 처 리 를 시 작 합 니 다 .

압 축 하 지 않 은 블 록 <크 기 >는 쉼 표 로 구 분 한 목 록 으 로 지 정 합 니 다 . 크 기 값 을 생 략 (둘 이 상 의 연 속 쉼 표 )는 이 전 블 록 크 기 를 계 속 사 용 하 겠 다 는 의 미 입 니 다 .

입 력 파 일 이 <크 기 >의 합 보 다 크 면 , 마 지 막 <크 기 > 값 을 파 일 마 지 막 까 지 반 복 해 서 사 용 합 니 다 . 특 별 히 0 값 을 마 지 막 값 으 로 사 용 하 여 파 일 나 머 지 부 분 을 단 일 블 록 으 로 인 코 딩 해 야 한 다 는 의 미 를 나 타 낼 수 도 있 습 니 다 .

인 코 더 블 록 크 기 를 초 과 하 는 <크 기 > 값 을 지 정 하 면 (스 레 드 모 드 기 본 값 또 는 --block-size=<크 기 > 옵 션 으 로 지 정 한 값 ), 인 코 더 는 <크 기 > 지 정 용 량 범 위 는 유 지 하 면 서 추 가 블 록 을 만 듭 니 다 . 예 를 들 면 --block-size=10MiB --block-list=5MiB,10MiB,8MiB,12MiB,24MiB 옵 션 을 지 정 하 고 입 력 파 일 을 80MiB 용 량 으 로 전 달 하 면 , 각 각 5, 10, 8, 10, 2, 10, 10, 4, 10, 10, 1 MiB 용 량 을 차 지 하 는 블 록 11개 를 결 과 물 로 내 줍 니 다 .

다 중 -스 레 드 모 드 에 서 블 록 크 기 는 블 록 헤 더 에 저 장 합 니 다 . 단 일 -스 레 드 모 드 에 서 는 저 장 하 지 않 기 때 문 에 인 코 딩 처 리 한 출 력 은 다 중 -스 레 드 모 드 의 출 력 결 과 물 과 는 다 릅 니 다 .

--flush-timeout=<제 한 시 간 >

압 축 할 때 , 이 전 데 이 터 를 소 거 하 고 다 음 입 력 을 블 록 단 위 로 더 읽 는 데 <제 한 시 간 > 밀 리 초 (양 의 정 수 값 )가 지 났 을 경 우 , 대 기 중 이 던 모 든 입 력 데 이 터 를 인 코 더 에 서 소 거 한 다 음 출 력 스 트 림 에 전 달 합 니 다 . 이 런 동 작 은 네 트 워 크 로 스 트 리 밍 한 데 이 터 를 xz로 압 축 할 때 쓸 만 합 니 다 . <제 한 시 간 > 값 을 적 게 지 정 하 면 적 은 지 연 시 간 에 데 이 터 를 받 아 낼 수 있 지 만 <제 한 시 간 > 값 을 크 게 하 면 압 축 율 을 높 일 수 있 습 니 다 .

이 기 능 은 기 본 적 으 로 꺼 져 있 습 니 다 . 이 옵 션 을 한 번 이 상 지 정 하 면 , 마 지 막 옵 션 의 값 대 로 동 작 합 니 다 . 특 별 히 <제 한 시 간 > 값 을 0으 로 설 정 하 면 이 설 정 을 완 전 히 끌 수 있 습 니 다 .

이 기 능 은 POSIX 시 스 템 이 아 닌 곳 에 서 는 사 용 할 수 없 습 니 다 .

이 기 능 은 여 전 히 시 험 중 입 니 다 . 현 재 로 서 는 , xz 버 퍼 링 처 리 방 식 때 문 에 xz의 실 시 간 스 트 림 압 축 해 제 기 능 활 용 은 적 절 하 지 않 습 니 다 .

--memlimit-compress=<제 한 용 량 >

압 축 수 행 시 메 모 리 사 용 한 계 를 지 정 합 니 다 . 이 옵 션 을 여 러 번 지 정 하 면 마 지 막 값 을 취 합 니 다 .

압 축 설 정 이 <제 한 용 량 >을 초 과 하 면 , xz는 설 정 값 의 하 향 조 정 을 시 도 하 여 한 계 값 을 더 이 상 넘 치 지 않 게 하 고 자 동 조 절 을 끝 냈 다 는 알 림 을 표 시 합 니 다 . 조 정 은 다 음 순 서 대 로 진 행 합 니 다 . 스 레 드 수 를 줄 입 니 다 . 다 중 -스 레 드 모 드 에 서 스 레 드 하 나 의 할 당 한 계 치 가 <제 한 용 량 >을 넘 으 면 단 일 -스 레 드 모 드 로 전 환 합 니 다 . 그 다 음 마 지 막 으 로 LZMA2 딕 셔 너 리 크 기 를 줄 입 니 다 .

--format=raw 또 는 --no-adjust 미 지 정 상 황 에 서 압 축 할 때 , 압 축 데 이 터 출 력 에 영 향 을 주 지 않 고 스 레 드 처 리 수 만 줄 일 수 있 습 니 다 .

<제 한 용 량 > 값 이 아 래 설 명 한 조 건 에 맞 지 않 으 면 , 오 류 가 나 타 나 고 xz 명 령 은 종 료 상 태 1번 을 반 환 하 며 빠 져 나 갑 니 다 .

<제 한 용 량 > 값 은 여 러 방 식 으 로 지 정 할 수 있 습 니 다 :

<제 한 용 량 > 값 은 바 이 트 용 량 절 대 값 입 니 다 . 정 수 값 을 사 용 하 되 MiB와 같 은 접 미 사 를 사 용 하 는 게 좋 습 니 다 . 예 : --memlimit-compress=80MiB

<제 한 용 량 > 값 은 총 물 리 메 모 리 (RAM) 용 량 의 백 분 율 로 지 정 할 수 도 있 습 니 다 . 다 른 컴 퓨 터 끼 리 공 유 하 는 셸 초 기 화 스 크 립 트 의 XZ_DEFAULTS 환 경 변 수 에 값 을 설 정 할 때 특 히 쓸 만 합 니 다 . 이 런 방 식 으 로 설 정 하 면 시 스 템 의 메 모 리 설 치 용 량 에 따 라 자 동 으 로 늘 어 납 니 다 . 예 : --memlimit-compress=70%

<제 한 용 량 > 값 은 0 기 본 값 으 로 설 정 하 여 초 기 화 할 수 있 습 니 다 . 현 재 로 서 는 <제 한 용 량 > 값 이 max(최 대 ) (메 모 리 사 용 한 계 없 음 ) 인 상 태 와 동 일 합 니 다 .

xz 32비 트 버 전 에 서 는 몇 가 지 특 별 한 경 우 가 있 습 니 다 . <제 한 용 량 > 값 이 4020MiB를 넘 으 면 <제 한 용 량 >4020MiB로 고 정 합 니 다 . MIPS32에 서 는 2000MiB로 대 신 고 정 합 니 다 . (0max는 이 경 우 에 해 당 하 지 않 습 니 다 . 압 축 해 제 시 비 슷 한 기 능 은 없 습 니 다 .) 이 경 우 32비 트 실 행 파 일 이 4GiB(MIPS32의 경 우 2GiB) 주 소 영 역 에 접 근 할 때 매 우 용 이 하 며 , 다 른 경 우 에 는 원 하 는 대 로 문 제 를 일 으 키 지 않 습 니 다 .

메 모 리 활 용 섹 션 도 참 고 하 십 시 오 .

--memlimit-decompress=<제 한 용 량 >

압 축 해 제 시 메 모 리 사 용 한 계 용 량 을 설 정 합 니 다 . --list 모 드 에 도 영 향 을 줍 니 다 . <제 한 용 량 >을 넘 기 지 않 고 서 는 동 작 이 진 행 이 안 될 경 우 , xz 에 서 는 오 류 를 나 타 내 고 파 일 압 축 해 제 를 실 패 로 간 주 합 니 다 . <제 한 용 량 >을 지 정 하 는 가 능 한 방 법 에 대 해 서 는 --memlimit-compress=<제 한 용 량 > 옵 션 을 참 고 하 십 시 오 .

--memlimit-mt-decompress=<제 한 용 량 >

다 중 -스 레 드 모 드 압 축 해 제 시 메 모 리 사 용 한 계 용 량 을 설 정 합 니 다 . 스 레 드 수 에 영 향 을 줄 수 도 있 습 니 다 . xz에 서 파 일 압 축 해 제 를 거 부 하 게 하 진 않 습 니 다 . <제 한 용 량 > 수 치 가 다 중 -스 레 드 로 처 리 하 기 에 너 무 낮 다 면 , <제 한 용 량 > 값 을 무 시 하 고 xz 동 작 을 단 일 -스 레 드 모 드 로 계 속 진 행 합 니 다 . 참 고 로 --memlimit-decompress 옵 션 도 사 용 하 면 , 단 일 -스 레 드 모 드 와 다 중 -스 레 드 모 드 두 경 우 에 모 두 적 용 하 기 에 , 다 중 -스 레 드 모 드 에 적 용 할 <제 한 용 량 > 값 은 --memlimit-decompress에 설 정 하 는 제 한 값 보 다 더 크 면 안 됩 니 다 .

다 른 메 모 리 사 용 용 량 제 한 옵 션 과 는 달 리 , --memlimit-mt-decompress=<제 한 용 량 > 옵 션 은 시 스 템 별 기 본 <제 한 용 량 > 값 을 지 닙 니 다 . 현 재 설 정 값 은 xz --info-memory 명 령 으 로 확 인 해 볼 수 있 습 니 다 .

이 옵 션 과 기 본 값 은 한 계 값 을 주 지 않 으 면 스 레 드 기 반 압 축 해 제 프 로 그 램 이 일 부 입 력 파 일 에 대 해 정 신 나 간 수 준 의 메 모 리 용 량 을 할 당 해 서 동 작 이 끝 나 버 릴 수 있 습 니 다 . 기 본 <제 한 용 량 >이 시 스 템 의 사 양 에 비 해 낮 다 면 , <제 한 용 량 > 값 을 자 유 롭 게 올 리 시 되 , xz 에 서 적 은 스 레 드 수 에 도 메 모 리 공 간 할 당 을 시 도 하 는 만 큼 , 입 력 파 일 에 적 절 한 수 준 으 로 가 용 RAM 용 량 을 넘 는 큰 값 을 설 정 하 지 마 십 시 오 . 메 모 리 나 스 와 핑 영 역 공 간 이 줄 어 들 면 압 축 해 제 성 능 을 개 선 하 지 못 합 니 다 .

<제 한 용 량 > 값 을 지 정 하 는 가 능 한 방 법 을 보 려 면 --memlimit-compress=<제 한 용 량 > 옵 션 을 참 고 하 십 시 오 . <제 한 용 량 > 값 을 0으 로 설 정 하 면 <제 한 용 량 > 값 이 시 스 템 지 정 기 본 값 으 로 바 뀝 니 다 .

-M <제 한 용 량 >, --memlimit=<제 한 용 량 >, --memory=<제 한 용 량 >

--memlimit-compress=<제 한 용 량 > --memlimit-decompress=<제 한 용 량 > --memlimit-mt-decompress=<제 한 용 량 > 지 정 과 동 일 합 니 다 .

--no-adjust

압 축 출 력 결 과 에 영 향 을 주 는 설 정 을 조 정 하 지 않 고 는 메 모 리 사 용 용 량 제 한 조 건 이 맞 지 않 으 면 오 류 를 표 시 하 고 빠 져 나 갑 니 다 . 이 옵 션 은 xz가 다 중 -스 레 드 모 드 에 서 단 일 -스 레 드 모 드 로 전 환 하 고 LZMA2 딕 셔 너 리 크 기 를 줄 이 는 동 작 을 막 아 줍 니 다 . 심 지 어 이 옵 션 을 사 용 하 면 메 모 리 사 용 한 계 를 만 족 하 도 록 스 레 드 수 를 줄 여 압 축 결 과 물 출 력 에 영 향 이 가 지 않 게 합 니 다 .

원 시 스 트 림 (--format=raw)을 만 들 떄 자 동 조 정 은 항 상 꺼 집 니 다 .

-T <스 레 드 수 >, --threads=<스 레 드 수 >

활 용 할 작 업 스 레 드 수 를 지 정 합 니 다 . <스 레 드 수 > 값 을 0 값 으 로 설 정 하 면 , xz는 시 스 템 에 서 지 원 하 는 최 대 프 로 세 서 스 레 드 수 를 모 두 확 보 합 니 다 . 실 제 스 레 드 수 는 입 력 파 일 이 주 어 진 설 정 대 로 스 레 드 처 리 를 할 만 큼 그 렇 게 크 지 않 을 경 우 , 내 지 는 더 많 은 스 레 드 를 사 용 했 을 때 메 모 리 사 용 량 한 계 를 초 과 할 경 우 <스 레 드 수 > 보 다 적 을 수 있 습 니 다 .

단 일 -스 레 드 와 다 중 -스 레 드 압 축 프 로 그 램 은 다 른 출 력 결 과 물 을 냅 니 다 . 단 일 -스 레 드 압 축 프 로 그 램 은 작 은 파 일 크 기 결 과 물 을 내 놓 지 만 , 다 중 -스 레 드 압 축 프 로 그 램 의 경 우 다 중 -스 레 드 압 축 프 로 그 램 에 서 내 놓 은 결 과 물 은 다 중 -스 레 드 로 만 압 축 을 해 제 할 수 있 습 니 다 . <스 레 드 수 >1로 설 정 하 면 단 일 -스 레 드 모 드 를 사 용 합 니 다 . <스 레 드 수 >0과 다 른 값 으 로 설 정 하 면 , 시 스 템 에 서 실 제 로 하 드 웨 어 스 레 드 가 1개 만 지 원 한 다 하 더 라 도 , 다 중 -스 레 드 압 축 프 로 그 램 을 사 용 합 니 다 . (xz 5.2.x에 서 는 이 경 우 단 일 -스 레 드 모 드 를 활 용 합 니 다 .)

단 일 -스 레 드 로 다 중 -스 레 드 모 드 를 사 용 하 려 면 , <스 레 드 수 >+1로 설 정 하 십 시 오 . + 접 두 사 는 1 이 외 의 값 에 는 영 향 을 주 지 않 습 니 다 . 메 모 리 사 용 량 한 계 설 정 은 xz--no-adjust 옵 션 을 쓰 기 전 까 지 는 단 일 -스 레 드 로 전 환 하 게 합 니 다 . + 접 두 사 지 원 은 xz 5.4.0에 추 가 했 습 니 다 .

자 동 스 레 드 수 를 요 청 했 고 메 모 리 사 용 한 계 를 지 정 하 지 않 았 다 면 , 시 스 템 에 맞 게 끔 가 능 한 스 레 드 수 를 제 한 하 는 기 본 소 프 트 제 한 값 을 사 용 합 니 다 . 스 레 드 수 가 한 개 가 되 면 무 시 하 는 이 런 개 념 이 소 프 트 제 한 이 기 에 , xz로 하 여 금 압 축 동 작 및 압 축 해 제 동 작 수 행 시 멈 추 지 않 습 니 다 . 이 가 본 소 프 트 제 한 값 은 xz 실 행 도 중 다 중 -스 레 드 모 드 에 서 단 일 -스 레 드 모 드 로 바 뀌 게 하 지 는 않 습 니 다 . 활 성 제 한 값 은 xz --info-memory 명 령 으 로 볼 수 있 습 니 다 .

현 재 스 레 딩 처 리 방 식 은 입 력 을 블 록 단 위 로 쪼 개 고 각 각 의 블 록 을 독 립 적 으 로 압 축 하 는 동 작 을 취 합 니 다 . 기 본 블 록 크 기 는 압 축 수 준 에 따 라 다 르 며 --block-size=<크 기 > 옵 션 으 로 재 지 정 할 수 있 습 니 다 .

스 레 드 압 축 해 제 방 식 은 여 러 블 록 이 블 록 헤 더 에 넣 은 크 기 정 보 와 함 께 들 어 간 파 일 에 만 동 작 합 니 다 . 다 중 -스 레 드 모 드 에 서 압 축 한 충 분 히 큰 모 든 파 일 은 이 조 건 에 만 족 하 지 만 , 단 일 -스 레 드 모 드 에 서 압 축 한 파 일 은 --block-size=<크 기 > 옵 션 을 지 정 하 더 라 도 조 건 에 만 족 하 지 않 습 니 다 .

개 별 압 축 필 터 체 인 설 정
개 별 필 터 체 인 은 사 전 설 정 에 엮 인 설 정 에 의 존 하 는 대 신 압 축 설 정 을 세 부 적 으 로 하 나 하 나 설 정 할 수 있 게 합 니 다 . 개 별 필 터 체 인 을 지 정 하 면 , 명 령 행 에 앞 서 지 정 한 사 전 설 정 옵 션 (-0 ... -9--extreme)은 무 시 합 니 다 . 사 전 설 정 옵 션 을 하 나 이 상 의 필 터 체 인 옵 션 다 음 에 지 정 하 면 , 새 사 전 설 정 을 취 하 며 , 앞 서 지 정 한 개 별 필 터 체 인 옵 션 은 무 시 합 니 다 .

필 터 체 인 은 명 령 행 파 이 핑 에 비 교 할 수 있 습 니 다 . 압 축 할 때 , 압 축 하 지 않 은 입 력 을 첫 번 째 필 터 로 놓 고 , 출 력 대 상 (이 있 으 면 )을 다 음 필 터 로 지 정 합 니 다 . 최 종 필 터 의 출 력 은 압 축 파 일 로 기 옥 합 니 다 . 체 인 의 최 대 필 터 수 는 4이 지 만 , 필 터 체 인 상 필 터 갯 수 는 보 통 1~2개 입 니 다 .

수 많 은 필 터 가 필 터 체 인 상 에 서 제 약 점 을 가 지 고 있 습 니 다 . 일 부 필 터 는 체 인 의 마 지 막 필 터 로 만 동 작 하 며 , 일 부 다 른 필 터 는 마 지 막 이 아 닌 필 터 로 , 어 떤 동 작 은 체 인 의 어 떤 위 치 에 든 둡 니 다 . 필 터 에 따 라 , 이 제 한 은 필 터 설 계 를 따 르 거 나 보 안 문 제 를 막 기 위 해 존 재 하 기 도 합 니 다 .

개 별 필 터 체 인 은 필 터 체 인 에 서 원 하 는 순 서 대 로 하 나 이 상 의 필 터 옵 션 을 사 용 하 여 지 정 합 니 다 . 이 는 , 필 터 옵 션 순 서 가 중 요 하 다 는 뜻 입 니 다 ! 원 시 스 트 림 을 디 코 딩 할 때 (--format=raw), 필 터 체 인 은 압 축 할 때 지 정 했 던 동 일 한 순 서 대 로 지 정 합 니 다 .

필 터 는 쉼 표 로 구 분 하 는 필 터 별 <옵 션 >이 있 습 니 다 . <옵 션 >에 추 가 로 입 력 한 쉼 표 는 무 시 합 니 다 . 모 든 옵 션 값 에 는 기 본 값 이 있 어 , 값 을 바 꾸 려 면 지 정 해 야 합 니 다 .

전 체 필 터 체 인 과 <옵 션 >을 보 려 면 xz -vv (--verbose 두 번 )명 령 을 사 용 하 십 시 오 . 이 명 령 은 사 전 설 정 이 사 용 하 는 필 터 체 인 옵 션 도 볼 수 있 습 니 다 .
--lzma1
[=<옵 션 >]
--lzma2
[=<옵 션 >]

LZMA1 또 는 LZMA2 필 터 를 필 터 체 인 에 추 가 합 니 다 . 이 필 터 는 필 터 체 인 의 마 지 막 요 소 로 만 사 용 할 수 있 습 니 다 .

LZMA1은 고 전 필 터 로 , LZMA1만 지 원 하 는 고 전 .lzma 파 일 형 식 에 서 만 지 원 합 니 다 . LZMA2는 LZMA1의 업 데 이 트 버 전 으 로 LZMA1의 실 질 적 문 제 를 해 결 했 습 니 다 . .xz 형 식 은 LZMA2 필 터 를 사 용 하 며 LZMA1 필 터 는 전 적 으 로 지 원 하 지 않 습 니 다 . 압 축 속 도 와 압 축 율 은 LZMA1과 LZMA2가 실 질 적 으 로 동 일 합 니 다 .

LZMA1과 LZMA2는 동 일 한 <옵 션 > 집 합 을 공 유 합 니 다 :

preset=<사 전 설 정 >

LZMA1 또 는 LZMA2의 모 든 <옵 션 ><사 전 설 정 >으 로 초 기 화 합 니 다 . <사 전 설 정 > 값 은 정 수 값 으 로 이 루 어 져 있 으 며 , 사 전 설 정 에 변 형 을 줄 떄 단 일 문 자 가 따 라 올 수 도 있 습 니 다 . 정 수 값 은 0에 서 9 까 지 이 며 , 명 령 행 옵 션 에 서 -0 ... -9로 대 응 합 니 다 . 변 형 옵 션 으 로 지 원 하 는 문 자 는 현 재 e 뿐 이 며 , --extreme에 대 응 합 니 다 . <사 전 설 정 > 값 을 지 정 하 지 않 으 면 , LZMA1 또 는 LZMA2 기 본 값 을 사 전 설 정 6에 서 가 져 온 <옵 션 >으 로 취 합 니 다 .

dict=<크 기 >

딕 셔 너 리 (기 록 버 퍼 ) <크 기 >는 최 근 처 리 한 비 압 축 데 이 터 를 바 이 트 단 위 로 메 모 리 에 얼 마 나 유 지 하 는 지 나 타 냅 니 다 . 알 고 리 즘 은 비 압 축 데 이 터 상 바 이 트 시 퀀 스 (일 치 항 목 ) 반 복 탐 색 을 시 도 하 며 , 해 당 부 분 을 딕 셔 너 리 의 현 재 참 조 로 치 환 합 니 다 . 딕 셔 너 리 가 크 면 일 치 하 는 항 목 을 찾 을 기 회 가 더 많 아 집 니 다 . 따 라 서 , 딕 셔 너 리 <크 기 >를 더 욱 크 게 설 정 하 면 압 축 율 을 증 가 할 수 는 있 지 만 , 압 축 하 지 않 은 파 일 보 다 딕 셔 너 리 가 크 면 메 모 리 낭 비 율 이 올 라 갑 니 다 .

보 통 딕 셔 너 리 <크 기 >는 64KiB 에 서 64MiB 정 도 됩 니 다 . 최 소 4KiB 입 니 다 . 압 축 시 최 대 용 량 은 현 재 1.5GiB(1536MiB)로 나 타 납 니 다 . 압 축 해 제 프 로 그 램 에 도 4GiB 미 만 으 로 딕 셔 너 리 크 기 를 이 미 지 원 하 며 4GiB 라 는 수 치 는 LZMA1과 LZMA2 스 트 림 형 식 의 최 대 값 입 니 다 .

딕 셔 너 리 <크 기 >와 검 색 기 (mf)는 LZMA1 또 는 LZMA 인 코 더 의 메 모 리 사 용 량 을 함 께 결 정 합 니 다 . 동 일 한 (또 는 더 큰 ) 딕 셔 너 리 <크 기 >가 데 이 터 를 압 축 했 을 때 만 큼 압 축 해 제 할 떄 필 요 하 기 때 문 에 , 디 코 더 의 메 모 리 사 용 량 은 압 축 할 때 의 딕 셔 너 리 크 기 로 결 정 합 니 다 . .xz 헤 더 에 는 딕 셔 너 리 <크 기 >를 2^n 또 는 2^n + 2^(n-1) 으 로 저 장 하 기 에 , 이 <크 기 > 값 을 압 축 할 때 선 호 하 는 편 입 니 다 . 다 른 <크 기 > 값 은 .xz 헤 더 에 저 장 할 때 반 올 림 합 니 다 .

lc=lc

리 터 럴 컨 텍 스 트 비 트 수 를 지 정 합 니 다 . 최 소 값 은 0이 고 최 대 값 은 4입 니 다 . 기 본 값 은 3입 니 다 . 추 가 로 , lc 값 과 lp 값 의 합 은 4를 넘 으 면 안 됩 니 다 .

조 건 이 일 치 하 지 않 아 인 코 딩 할 수 없 는 모 든 바 이 트 는 리 터 럴 로 인 코 딩 합 니 다 . 이 말 인 즉 슨 , 간 단 히 8비 트 바 이 트 로 서 의 리 터 럴 을 한 번 에 하 나 씩 인 코 딩 합 니 다 .

리 터 럴 코 딩 을 할 때 이 전 비 압 축 바 이 트 와 다 음 바 이 트 와 의 관 련 성 을 가 진 가 장 많 은 lc 비 트 수 를 가 정 합 니 다 . 예 를 들 면 , 보 통 영 문 문 장 의 경 우 대 문 자 다 음 에 종 종 소 문 자 가 오 고 , 소 문 자 다 음 에 다 른 소 문 자 가 따 라 옵 니 다 . US-ASCII 문 자 세 트 에 서 는 가 장 긴 비 트 3개 는 대 문 자 에 대 해 010, 소 문 자 에 대 해 011입 니 다 . lc 값 이 최 소 한 3이 면 , 리 터 럴 코 딩 시 비 압 축 데 이 터 에 대 해 이 런 속 성 의 장 점 을 취 할 수 있 습 니 다 .

(어 쨌 거 나 ) 기 본 값 (3)은 보 통 적 절 합 니 다 . 최 대 압 축 을 원 한 다 면 lc=4 값 을 시 험 해 보 십 시 오 . 때 로 는 약 간 도 움 이 되 기 도 하 겠 지 만 , 오 히 려 결 과 가 안 좋 을 수 도 있 습 니 다 . 결 과 가 엄 한 방 향 으 로 간 다 면 , lc=2 값 도 시 험 해 보 십 시 오 .

lp=lp

리 터 럴 위 치 비 트 수 를 지 정 하 빈 다 . 최 소 값 은 0이 고 최 대 값 은 4입 니 다 . 기 본 값 은 0입 니 다 .

lp 값 은 리 터 럴 인 코 딩 진 행 시 비 압 축 데 이 터 정 렬 방 식 고 려 에 영 향 을 줍 니 다 . 정 렬 방 식 에 대 한 자 세 한 정 보 는 하 단 pb를 참 고 하 십 시 오 .

pb=pb

위 치 비 트 수 를 지 정 합 니 다 . 최 소 값 은 0이 며 최 대 값 은 4입 니 다 . 기 본 값 은 2입 니 다 .

pb 값 은 보 통 압 축 하 지 않 은 데 이 터 에 어 떤 정 렬 방 식 을 고 려 하 느 냐 에 영 향 을 줍 니 다 . 기 본 적 으 로 4바 이 트 정 렬 (2^pb=2^2=4)을 의 미 하 는 데 , 이 보 다 더 나 은 추 측 값 이 없 어 서 종 종 최 적 의 선 택 으 로 간 주 합 니 다 .

정 렬 상 태 를 알 지 못 할 경 우 , pb 설 정 값 이 파 일 크 기 를 조 금 줄 일 수 있 습 니 다 . 예 를 들 면 , 텍 스 트 파 일 이 단 일 바 이 트 단 위 로 정 돈 된 상 태 (US-ASCII, ISO-8859-*, UTF-8)라 면 , pb=0 설 정 값 으 로 압 축 율 을 조 금 개 선 할 수 있 습 니 다 . UTF-16 텍 스 트 의 경 우 , pb=1 설 정 값 이 좋 은 선 택 입 니 다 . 정 렬 바 이 트 가 3 바 이 트 같 은 홀 수 바 이 트 일 경 우 , pb=0 설 정 값 이 최 적 의 선 택 일 지 도 모 릅 니 다 .

가 정 정 렬 을 pb 값 과 lp 값 으 로 조 정 하 긴 하 지 만 , LZMA1과 LZMA2는 여 전 히 16바 이 트 정 렬 방 식 으 로 선 호 합 니 다 . LZMA1 또 는 LZMA2로 종 종 압 축 하 는 파 일 형 식 이 라 고 하 면 고 려 해 볼 만 합 니 다 .

mf=mf

일 치 검 색 기 는 인 코 더 속 도 , 메 모 리 사 용 량 , 압 축 율 에 주 된 영 향 을 줍 니 다 . 보 통 해 시 체 인 검 색 기 는 이 진 트 리 검 색 기 보 다 빠 르 긴 합 니 다 . 기 본 값 은 <사 전 설 정 >에 따 라 다 릅 니 다 . 0은 hc3을 , 1–3은 hc4를 , 나 머 지 는 bt4를 활 용 합 니 다 .

다 음 검 색 필 터 를 지 원 합 니 다 . 메 모 리 사 용 공 식 은 dict 값 이 2의 승 수 일 경 우 실 제 에 가 까 운 근 사 치 입 니 다 .

hc3

2바 이 트 , 3바 이 트 해 싱 체 인

nice 최 소 값 : 3
메 모 리 사 용 :
dict
* 7.5 (조 건 : dict <= 16 MiB);
dict
* 5.5 + 64 MiB (조 건 : dict > 16 MiB)

hc4

2바 이 트 , 3바 이 트 , 4바 이 트 해 싱 체 인

nice 최 소 값 : 4
메 모 리 사 용 :
dict
* 7.5 (조 건 : dict <= 32 MiB);
dict
* 6.5 (조 건 : dict > 32 MiB)

bt2

2바 이 트 해 싱 이 진 트 리

nice 최 소 값 : 2
메 모 리 사 용 : dict * 9.5

bt3

2바 이 트 , 3바 이 트 해 싱 이 진 트 리

nice 최 소 값 : 3
메 모 리 사 용 :
dict
* 11.5 (조 건 : dict <= 16 MiB);
dict
* 9.5 + 64 MiB (조 건 : dict > 16 MiB)

bt4

2바 이 트 , 3바 이 트 , 4바 이 트 해 싱 이 진 트 리

nice 최 소 값 : 4
메 모 리 사 용 :
dict
* 11.5 (조 건 : dict <= 32 MiB);
dict
* 10.5 (조 건 : dict > 32 MiB)

mode=<모 드 >

압 축 <모 드 > 값 은 일 치 검 색 기 에 서 생 산 하 는 데 이 터 분 석 방 식 을 지 정 합 니 다 . 지 원 하 는 <모 드 >fastnormal 입 니 다 . 기 본 값 은 <사 전 설 정 >값 0–3에 대 해 fast, <사 전 설 정 >값 4–9에 대 해 normal입 니 다 .

보 통 fast는 해 시 체 인 검 색 기 에 서 사 용 하 며 normal은 이 진 트 리 검 색 기 에 서 사 용 합 니 다 . 이 동 작 은 또 한 <사 전 설 정 > 값 이 할 일 이 기 도 합 니 다 .

nice=nice

일 치 하 는 nice 길 이 를 지 정 합 니 다 . 최 소 한 nice 바 이 트 정 도 일 치 하 면 , 알 고 리 즘 이 가 능 한 최 선 의 부 분 을 찾 는 동 작 을 멈 춥 니 다 .

nice 값 은 2–273 바 이 트 입 니 다 . 값 이 클 수 록 속 도 면 에 서 는 손 해 를 보 겠 지 만 압 축 율 은 더 욱 올 라 갑 니 다 . 기 본 값 은 <사 전 설 정 >값 에 따 라 다 릅 니 다 .

depth=<깊 이 >

일 치 검 색 기 에 서 의 최 대 검 색 깊 이 를 지 정 합 니 다 . 기 본 값 은 특 별 한 값 0으 로 지 정 하 며 , 이 값 으 로 압 축 프 로 그 램 이 mfnice간 적 절 한 <깊 이 > 값 을 결 정 합 니 다 .

적 절 한 해 시 체 인 <깊 이 > 값 은 이 진 트 리 에 서 4–100 그 리 고 16–1000 입 니 다 . 상 당 히 큰 값 을 <깊 이 > 값 으 로 사 용 하 면 일 부 파 일 에 대 해 인 코 더 가 매 우 느 리 게 동 작 할 수 가 있 습 니 다 . 압 축 시 간 이 너 무 오 래 걸 려 서 동 작 을 중 간 에 끊 을 준 비 가 되 지 않 은 이 상 <깊 이 > 설 정 값 은 1000을 넘 지 않 게 하 십 시 오 .

원 시 스 트 림 (--format=raw)을 디 코 딩 할 때 , LZMA2는 딕 셔 너 리 <크 기 >만 필 요 합 니 다 . LZMA1는 lc, lp, pb 값 이 모 두 필 요 합 니 다 .

--x86[=<옵 션 >]
--arm
[=<옵 션 >]
--armthumb
[=<옵 션 >]
--arm64
[=<옵 션 >]
--powerpc
[=<옵 션 >]
--ia64
[=<옵 션 >]
--sparc
[=<옵 션 >]

브 랜 치 /호 출 /점 프 (BCJ) 필 터 를 필 터 체 인 에 추 가 합 니 다 . 이 필 터 는 필 터 체 인 의 비 종 결 필 터 로 만 사 용 할 수 있 습 니 다 .

BCJ 필 터 는 머 신 코 드 의 상 대 주 소 를 절 대 주 소 로 변 환 합 니 다 . 데 이 터 크 기 를 바 꾸 지 는 않 지 만 LZMA2에 서 .xz 파 일 을 0–15% 정 도 줄 여 주 게 하 는 중 복 성 이 늘 어 납 니 다 . BCJ 필 터 는 언 제 든 뒤 집 을 수 있 어 , 데 이 터 에 적 절 하 지 않 은 BCJ 필 터 형 식 을 활 용 하 면 , 그 냥 가 만 히 두 면 압 축 율 이 약 간 떨 어 지 게 한 다 하 더 라 도 , 데 이 터 를 잃 을 수 가 있 습 니 다 . BCJ 필 터 는 굉 장 히 빠 르 며 메 모 리 공 간 을 적 게 활 용 합 니 다 .

이 BCJ 필 터 에 는 압 축 율 관 련 몇 가 지 문 제 가 있 습 니 다 :

실 행 코 드 가 들 어 있 는 몇 가 지 파 일 형 식 (예 : 목 적 파 일 , 정 적 라 이 브 러 리 , 리 눅 스 커 널 모 듈 )의 경 우 필 터 값 으 로 채 운 명 령 주 소 가 있 습 니 다 . 여 기 BCJ 필 터 의 경 우 파 일 의 압 축 율 을 떨 어 뜨 리 는 주 소 변 환 을 수 행 합 니 다 .

BCJ 필 터 를 아 카 이 브 에 적 용 하 면 , BCJ 필 터 를 사 용 하 지 않 았 을 때 보 다 압 축 율 이 떨 어 질 수 가 있 습 니 다 . 예 를 들 면 , 유 사 하 거 나 동 일 한 실 행 파 일 여 럿 이 있 으 면 필 터 를 사 용 하 여 파 일 을 덜 비 슷 하 게 만 들 어 압 축 율 이 떨 어 지 게 합 니 다 . 동 일 한 아 카 이 브 파 일 에 서 비 실 행 파 일 의 내 용 에 대 해 서 도 비 슷 한 일 이 벌 어 질 수 있 습 니 다 . 실 제 로 하 나 는 BCJ 필 터 를 걸 고 하 나 는 제 외 하 여 각 경 우 에 대 해 어 떤 경 우 가 결 과 가 우 수 한 지 살 펴 보 겠 습 니 다 .

다 른 명 령 세 트 는 다 른 정 렬 상 태 에 놓 여 있 습 니 다 . 실 행 파 일 은 필 터 가 제 대 로 동 작 하 게 하 려 면 입 력 데 이 터 에 있 는 이 값 의 배 수 로 정 돈 해 야 합 니 다 .

BCJ 필 터 를 사 용 한 데 이 터 는 LZMA2로 보 통 압 축 하 기 때 문 에 LZMA2 옵 션 을 선 택 한 BCJ 필 터 의 정 렬 기 준 에 맞 추 도 록 설 정 하 면 압 축 율 을 좀 더 개 선 할 수 있 습 니 다 . 예 를 들 면 , IA-64 필 터 에 서 는 pb=4 또 는 LZMA2에 대 해 pb=4,lp=4,lc=0 (2^4=16) 값 이 바 람 직 합 ㄴ 디 ㅏ . x86 필 터 는 예 외 로 , x86 실 행 파 일 을 압 축 할 경 우 LZMA2의 기 본 4바 이 트 정 렬 을 따 르 는 게 좋 습 니 다 .

모 든 BCJ 필 터 는 동 일 한 옵 션 을 지 원 합 니 다 :

start=<오 프 셋 >

상 대 주 소 와 절 대 주 소 를 변 환 할 때 사 용 할 시 작 <오 프 셋 >을 지 정 합 니 다 . <오 프 셋 >에 는 필 터 정 렬 배 수 여 야 합 니 다 (상 단 테 이 블 참 조 ). 기 본 값 은 0입 니 다 . 실 제 로 기 본 값 이 낫 습 니 다 . 개 별 <오 프 셋 > 지 정 값 은 거 의 쓸 모 가 없 습 니 다 .

--delta[=<옵 션 >]

필 터 체 인 에 델 타 필 터 를 추 가 합 니 다 . 델 타 필 터 는 필 터 체 인 에 서 마 지 막 에 지 정 하 지 않 은 필 터 로 만 사 용 할 수 있 습 니 다 .

현 재 로 서 는 바 이 트 단 위 단 순 델 타 계 산 결 과 만 보 여 줍 니 다 . 예 를 들 면 , 압 축 하 지 않 은 비 트 맵 그 림 또 는 압 축 하 지 않 은 PCM 오 디 오 를 압 축 할 때 쓸 만 합 니 다 . 그 러 나 특 별 한 목 적 으 로 활 용 하 는 알 고 리 즘 은 델 타 + LZMA2 보 다 더 나 은 결 과 를 가 져 다 주 기 도 합 니 다 . 이 는 특 히 오 디 오 의 경 우 맞 는 이 야 기 인 데 , flac(1)의 경 우 더 빠 르 고 우 수 한 압 축 율 을 보 여 줍 니 다 .

지 원 옵 션 :

dist=<차 이 >

바 이 트 단 위 델 터 계 산 <차 이 >를 지 정 합 니 다 . <차 이 >값 은 1–256 이 어 야 합 니 다 . 기 본 값 은 1입 니 다 .

예 를 들 어 , dist=2 옵 션 과 A1 B1 A2 B3 A3 B5 A4 B7 입 력 값 을 주 면 , 출 력 값 은 A1 B1 01 02 01 02 01 02 입 니 다 .

기 타 옵 션
-q
, --quiet

경 고 및 알 림 을 끕 니 다 . 두 번 지 정 하 면 오 류 메 시 지 표 시 도 끕 니 다 . 이 옵 션 은 종 료 상 태 에 영 향 을 주 지 않 습 니 다 . 경 고 표 시 를 끄 더 라 도 , 종 료 상 태 에 서 는 여 전 히 경 고 가 나 타 났 음 을 알 려 줍 니 다 .

-v, --verbose

출 력 내 용 이 많 아 집 니 다 . 표 준 오 류 를 터 미 널 에 연 결 했 다 면 xz는 진 행 표 시 를 나 타 냅 니 다 . --verbose를 두 번 지 정 하 면 더 많 은 내 용 을 표 시 합 니 다 .

진 행 표 시 에 서 는 다 음 정 보 를 나 타 냅 니 다 :

입 력 파 일 의 크 기 를 알 고 있 을 경 우 완 료 백 분 율 . 파 이 프 처 리 시 에 는 백 분 율 을 나 타 낼 수 없 습 니 다 .

산 출 압 축 데 이 터 용 량 (압 축 ) 또 는 소 모 공 간 용 량 (압 축 해 제 ).

비 압 축 데 이 터 소 모 용 량 (압 축 ) 또 는 산 출 용 량 (압 축 해 제 ).

압 축 데 이 터 산 출 용 량 을 비 압 축 데 이 터 처 리 용 량 으 로 나 누 어 계 산 한 압 축 율 .

압 축 또 는 압 축 해 제 속 도 . 초 당 비 압 축 데 이 터 소 모 량 (압 축 ) 또 는 산 출 용 량 (압 축 해 제 )를 측 정 한 값 입 니 다 . xz에 서 파 일 처 리 를 시 작 한 몇 초 후 나 타 납 니 다 .

경 과 시 간 형 식 은 M:SS 또 는 H:MM:SS 입 니 다 .

추 산 여 분 시 간 은 xz가 파 일 을 처 리 하 기 시 작 한 이 후 입 력 파 일 의 크 기 를 알 고 몇 초 가 지 난 후 에 야 보 여 줍 니 다 . 시 간 은 콜 론 문 자 를 사 용 하 지 않 고 덜 자 세 한 형 식 으 로 , 예 를 들 면 , 2분 30초 와 같 은 형 식 으 로 보 여 줍 니 다 .

표 준 오 류 가 터 미 널 이 아 니 라 면 --verbosexz에 서 파 일 이 름 , 압 축 크 기 , 압 축 해 제 용 량 , 압 축 율 , 그 리 고 가 능 하 다 면 파 일 을 압 축 또 는 압 축 해 제 한 후 표 준 오 류 로 속 도 와 걸 린 시 간 을 나 타 내 도 록 합 니 다 . 속 도 와 걸 린 시 간 정 보 는 동 작 을 처 리 하 는 데 최 소 한 몇 초 정 도 소 요 했 을 경 우 에 만 들 어 갑 니 다 . 동 작 이 끝 나 지 않 았 다 면 , 이 를 테 면 사 용 자 의 중 단 요 청 이 있 었 을 경 우 입 력 파 일 의 크 기 를 알 고 있 을 때 압 축 백 분 율 정 보 도 들 어 갑 니 다 .

-Q, --no-warn

경 고 로 알 릴 만 한 상 황 을 만 났 다 하 더 라 도 종 료 상 태 2번 을 설 정 하 지 않 습 니 다 . 이 옵 션 은 출 력 수 준 에 영 향 을 주 지 않 기 때 문 에 , --quiet 옵 션 과 --no-warn 옵 션 을 경 고 표 시 를 막 고 종 료 상 태 를 바 꾸 지 않 을 목 적 으 로 사 용 합 니 다 .

--robot

머 신 에 서 해 석 할 형 식 으 로 메 시 지 를 나 타 냅 니 다 . liblzma 대 신 xz를 활 용 하 려 는 다 양 상 스 크 립 트 로 서 의 프 론 트 엔 드 를 쉽 게 작 성 하 도 록 하 기 위 함 입 니 다 . 이 옵 션 을 지 정 한 출 력 은 xz 릴 리 스 가 어 떻 게 되 든 안 정 버 전 이 란 의 미 입 니 다 . 자 세 한 내 용 은 로 봇 모 드 섹 션 을 참 고 하 십 시 오 .

--info-memory

압 축 및 압 축 해 제 시 물 리 메 모 리 용 량 (RAM), xz에 서 파 악 하 는 프 로 세 서 스 레 드 갯 수 , 메 모 리 사 용 량 한 계 를 파 악 하 기 쉬 운 형 식 으 로 나 타 내 고 무 사 히 나 갑 니 다 .

-h, --help

보 통 사 용 하 는 옵 션 을 설 명 하 는 도 움 말 메 시 지 를 출 력 한 후 , 완 전 히 빠 져 나 갑 니 다 .

-H, --long-help

xz의 모 든 기 능 을 설 명 하 는 도 움 말 메 시 지 를 출 력 한 후 , 완 전 히 빠 져 나 갑 니 다

-V, --version

xz와 liblzma 버 전 번 호 를 가 독 형 식 으 로 출 력 합 니 다 . 기 계 해 석 가 능 형 식 을 가 져 오 려 면 --version 앞 에 --robot을 지 정 하 십 시 오 .

로 봇 모 드

로 봇 모 드 는 --robot 옵 션 으 로 동 작 합 니 다 . xz 출 력 을 다 른 프 로 그 램 에 서 해 석 하 기 쉽 게 해 줍 니 다 . 현 재 로 서 는 --robot 옵 션 은 --version, --info-memory, --list 옵 션 하 고 만 사 용 할 수 있 습 니 다 . 앞 으 로 는 압 축 및 압 축 해 제 동 작 에 대 해 서 도 지 원 합 니 다 .

버 전
xz --robot --version
xz 와 liblzma의 버 전 번 호 를 다 음 형 식 으 로 나 타 냅 니 다 :

XZ_VERSION=XYYYZZZS
LIBLZMA_VERSION=
XYYYZZZS

X

주 버 전 .

YYY

부 버 전 . 짝 수 가 안 정 버 전 입 니 다 . 홀 수 는 알 파 또 는 베 타 버 전 입 니 다 .

ZZZ

안 정 릴 리 스 의 패 치 수 준 또 는 개 발 릴 리 스 의 횟 수 입 니 다 .

S

안 정 도 . 0은 알 파 버 전 , 1은 베 타 버 전 을 나 타 내 며 , 2는 안 정 버 전 을 나 타 냅 니 다 . SYYY 값 이 짝 수 라 해 도 항 상 2여 야 합 니 다 .

xz 명 령 과 liblzma이 동 일 한 XZ 유 틸 리 티 릴 리 스 에 서 나 왔 다 면 두 행 의 XYYYZZZS 값 은 같 습 니 다 .

예 제 : 4.999.9beta는 49990091이 며 , 5.0.0은 50000002입 니 다 .

메 모 리 제 한 정 보
xz --robot --info-memory
명 령 은 탭 으 로 나 뉜 여 러 컬 럼 을 단 일 행 으 로 나 타 냅 니 다 :

1.

물 리 메 모 리 (RAM)의 바 이 트 단 위 총 량 .

2.

압 축 진 행 시 바 이 트 단 위 메 모 리 사 용 한 계 값 (--memlimit-compress). 특 수 값 0은 단 일 -스 레 드 모 드 에 서 제 한 을 두 지 않 는 기 본 설 정 임 을 나 타 냅 니 다 .

3.

압 축 해 제 시 바 이 트 단 위 메 모 리 사 용 한 계 값 (--memlimit-decompress). 특 수 값 0은 단 일 -스 레 드 모 드 에 서 제 한 을 두 지 않 는 기 본 설 정 임 을 나 타 냅 니 다 .

4.

xz 5.3.4alpha 이 후 : 다 중 -스 레 드 기 반 압 축 해 제 시 바 이 트 단 위 메 모 리 사 용 량 (--memlimit-mt-decompress). 분 명 하 게 제 한 을 걸 어 두 지 않 았 을 경 우 5번 째 컬 럼 에 나 타 난 시 스 템 별 기 본 값 을 사 용 하 기 때 문 에 0 값 을 지 정 하 면 안 됩 니 다 . 또 한 --memlimit-mt-decompress로 세 번 째 컬 럼 값 보 다 더 크 게 지 정 을 한 다 할 지 라 도 이 값 이 세 번 째 컬 럼 값 보 다 크 면 안 됩 니 다 .

5.

xz 5.3.4alpha 이 후 : A system-specific default memory usage limit that is used to limit the number of threads when compressing with an automatic number of threads (--threads=0) and no memory usage limit has been specified (--memlimit-compress). This is also used as the default value for --memlimit-mt-decompress.

6.

xz 5.3.4alpha 이 후 : Number of available processor threads.

차 후 , xz --robot --info-memory 출 력 에 는 더 많 은 내 용 이 들 어 가 지 만 , 한 줄 이 상 은 넘 어 가 지 않 습 니 다 .

목 록 모 드
xz --robot --list
명 령 은 탭 으 로 구 분 한 출 력 형 태 를 활 용 합 니 다 . 모 든 행 의 첫 번 째 컬 럼 에 는 해 당 행 에 서 찾 을 수 있 는 정 보 의 형 식 을 나 타 냅 니 다 :

이 름

이 행 은 항 상 파 일 목 록 시 작 부 분 의 첫 번 째 줄 에 있 습 니 다 . 이 행 의 두 번 째 컬 럼 에 파 일 이 름 이 들 어 있 습 니 다 .

파 일

이 행 에 는 .xz 파 일 의 전 반 적 인 정 보 가 들 어 있 습 니 다 . 이 행 은 항 상 이 름 행 다 음 에 있 습 니 다 .

스 트 림

이 행 형 식 은 --verbose 옵 션 을 지 정 했 을 때 만 사 용 합 니 다 . .xz 파 일 의 스 트 림 행 수 만 큼 나 타 납 니 다 .

블 록

이 행 형 식 은 --verbose 옵 션 을 지 정 했 을 때 만 사 용 합 니 다 . .xz 파 일 의 블 록 수 만 큼 블 록 행 이 나 타 납 니 다 . 블 록 행 은 모 든 스 트 림 행 다 음 에 나 타 납 니 다 . 다 른 형 식 의 행 이 끼 어 들 지 는 않 습 니 다 .

요 약

이 행 형 식 은 --verbose 옵 션 을 두 번 지 정 했 을 때 만 사 용 합 니 다 . 이 행 은 모 든 블 록 행 다 음 에 출 력 합 니 다 . 파 일 행 과 비 슷 하 게 , 요 약 행 에 는 .xz 파 일 의 전 반 적 인 정 보 가 담 겨 있 습 니 다 .

총 계

이 행 은 목 록 출 력 의 가 장 마 지 막 에 항 상 나 타 납 니 다 . 총 갯 수 와 크 기 를 나 타 냅 니 다 .

파 일 행 컬 럼 :

2.

파 일 스 트 림 갯 수

3.

스 트 림 의 블 록 총 갯 수

4.

파 일 압 축 크 기

5.

파 일 압 축 해 제 크 기

6.

예 를 들 면 , 0.123과 같 은 압 축 율 입 니 다 . 비 율 이 9.999라 면 , 대 시 문 자 3개 (---)를 비 율 값 대 신 나 타 냅 니 다 .

7.

쉼 표 로 구 분 한 무 결 성 검 사 이 름 목 록 입 니 다 . None, CRC32, CRC64, SHA-256 문 자 열 을 알 려 진 검 사 형 식 으 로 사 용 합 니 다 . 알 수 없 는 검 사 형 식 에 대 해 서 는 Unknown-N을 사 용 하 며 , 여 기 서 N은 (한 두 자 리 ) 정 수 형 숫 자 값 으 로 이 루 어 진 검 사 ID 입 니 다 .

8.

파 일 의 스 트 림 패 딩 총 길 이

스 트 림 행 컬 럼 :

2.

스 트 림 번 호 (첫 스 트 림 은 1번 )

3.

스 트 림 의 블 록 총 갯 수

4.

압 축 시 작 오 프 셋

5.

비 압 축 시 작 오 프 셋

6.

압 축 크 기 (스 트 림 패 딩 미 포 함 )

7.

압 축 해 제 용 량

8.

압 축 율

9.

무 결 성 검 사 이 름

10.

스 트 림 패 딩 길 이

블 록 행 컬 럼 :

2.

이 블 록 이 들 어 간 스 트 림 갯 수

3.

스 트 림 시 작 부 분 의 블 록 번 호 (첫 번 째 블 록 은 1번 )

4.

파 일 시 작 부 분 의 블 록 번 호

5.

파 일 시 작 부 분 의 압 축 시 작 오 프 셋

6.

파 일 시 작 부 분 의 비 압 축 시 작 오 프 셋

7.

총 블 록 압 축 크 기 (헤 더 포 함 )

8.

압 축 해 제 용 량

9.

압 축 율

10.

무 결 성 검 사 이 름

--verbose를 두 번 지 정 하 면 , 추 가 컬 럼 을 블 록 행 에 넣 습 니 다 . --verbose 단 일 지 정 시 에 는 이 정 보 를 볼 때 탐 색 을 여 러 번 수 행 해 야 하 기 때 문 에 실 행 과 정 이 느 려 질 수 있 어 서 나 타 내 지 않 습 니 다 .

11.

16진 수 무 결 성 검 사 값

12.

블 록 헤 더 크 기

13.

블 록 플 래 그 : c는 압 축 크 기 가 현 재 값 임 을 나 타 내 고 , u는 압 축 전 원 본 크 기 가 현 재 값 임 을 나 타 냅 니 다 . 플 래 그 를 설 정 하 지 않 았 다 면 , 문 자 열 길 이 를 유 지 할 목 적 으 로 대 시 - 를 대 신 나 타 냅 니 다 . 새 플 래 그 는 나 중 에 문 자 열 끝 부 분 에 추 가 할 예 정 입 니 다 .

14.

블 록 에 압 축 해 서 넣 은 데 이 터 의 실 제 츠 기 (블 록 헤 더 , 블 록 패 딩 , 검 사 필 드 제 외 )

15.

xz 버 전 에 서 이 블 록 의 압 축 을 해 제 할 때 필 요 한 (바 이 트 단 위 ) 메 모 리 용 량

16.

필 터 체 인 . 대 부 분 사 용 하 는 옵 션 은 압 축 해 제 시 필 요 한 옵 션 만 을 .xz 헤 더 에 저 장 하 기 때 문 에 압 축 시 간 에 알 수 없 습 니 다 .

요 약 행 컬 럼 :

2.

xz 버 전 에 서 이 파 일 압 축 을 해 제 할 때 필 요 한 (바 이 트 단 위 ) 메 모 리 용 량

3.

모 든 블 록 헤 더 에 압 축 크 기 와 압 축 전 원 본 크 기 정 보 가 들 어 갔 는 지 여 부 를 나 타 내 는 yes 또 는 no

xz 5.1.2alpha 부 터 :

4.

파 일 압 축 해 제 시 필 요 한 최 소 xz 버 전

총 계 행 컬 럼 :

2.

스 트 림 갯 수

3.

블 록 갯 수

4.

압 축 크 기

5.

압 축 해 제 용 량

6.

평 균 압 축 율

7.

파 일 에 들 어 있 어 쉼 표 로 구 분 한 무 결 성 검 사 이 름 목 록

8.

스 트 림 패 딩 길 이

9.

파 일 갯 수 . 파 일 행 의 컬 럼 순 서 를 따 라 갑 니 다 .

--verbose 옵 션 을 두 번 지 정 하 면 , 총 계 행 에 추 가 컬 럼 이 들 어 갑 니 다 :

10.

xz 버 전 에 서 파 일 압 축 을 해 제 할 떄 필 요 한 (바 이 트 단 위 ) 최 대 메 모 리 사 용 량

11.

모 든 블 록 헤 더 에 압 축 크 기 와 압 축 전 원 본 크 기 정 보 가 들 어 갔 는 지 여 부 를 나 타 내 는 yes 또 는 no

xz 5.1.2alpha 부 터 :

12.

파 일 압 축 해 제 시 필 요 한 최 소 xz 버 전

차 후 버 전 에 서 는 새 행 형 식 을 추 가 하 고 기 존 행 형 식 에 추 가 할 수 있 는 새 컬 럼 을 넣 기 까 지 는 알 수 있 겠 지 만 , 기 존 컬 럼 은 바 꾸 지 않 을 예 정 입 니 다 .

종 료 상 태

0

모 든 상 태 양 호 .

1

오 류 발 생 .

2

눈 여 겨 볼 경 고 가 나 타 났 지 만 , 실 제 오 류 는 일 어 나 지 않 음 .

표 준 오 류 에 출 력 하 는 알 림 (경 고 또 는 오 류 아 님 )는 종 료 상 태 에 영 향 을 주 지 않 습 니 다 .

환 경

xz는 빈 칸 으 로 구 분 한 옵 션 값 목 록 을 XZ_DEFAULTS, XZ_OPT 환 경 변 수 에 서 순 서 대 로 , 명 령 행 에 서 옵 션 을 해 석 하 기 전 에 불 러 옵 니 다 . 참 고 로 환 경 변 수 에 서 옵 션 만 해 석 하 며 , 옵 션 이 아 닌 부 분 은 조 용 히 무 시 합 니 다 . 해 석 은 getopt_long(3)으 로 가 능 하 며 , 명 령 행 인 자 로 활 용 하 기 도 합 니 다 .
XZ_DEFAULTS

사 용 자 별 , 시 스 템 범 위 기 본 옵 션 입 니 다 . 보 통 xz의 메 모 리 사 용 량 제 한 을 기 본 으 로 걸 어 둘 경 우 셸 초 기 화 스 크 립 트 에 설 정 합 니 다 . 셸 초 기 화 스 크 립 트 와 별 도 의 유 사 한 경 우 를 제 외 하 고 라 면 , 스 크 립 트 에 서 는 XZ_DEFAULTS 환 경 변 수 를 설 정 하 지 말 거 나 설 정 을 해 제 해 야 합 니 다 .

XZ_OPT

xz 명 령 행 으 로 옵 션 설 정 값 을 직 접 전 달 할 수 없 을 경 우 xz에 옵 션 을 전 달 하 는 환 경 변 수 입 니 다 . 예 를 들 어 , xz를 스 크 립 트 또 는 도 구 에 서 실 행 할 경 우 GNU tar(1) 라 면 :

XZ_OPT=-2v tar caf foo.tar.xz foo

예 를 들 면 , 스 크 립 트 에 서 XZ_OPT 를 활 용 하 여 , 스 크 립 트 별 로 기 본 압 축 옵 션 을 지 정 할 수 있 습 니 다 . 적 절 한 이 유 가 있 다 면 XZ_OPT 옵 션 값 을 사 용 자 가 바 꾸 는 걸 추 천 합 니 다 . 예 를 들 면 , sh(1) 스 크 립 트 에 서 다 음 처 럼 활 용 할 수 도 있 습 니 다 :

XZ_OPT=${XZ_OPT-"-7e"} export XZ_OPT

LZMA 유 틸 리 티 호 환 성

xz의 명 령 행 문 법 은 실 제 로 LZMA 유 틸 리 티 4.32.x에 서 찾 을 수 있 는 lzma, unlzma lzcat의 상 위 집 합 입 니 다 . 대 부 분 의 경 우 LZMA 유 틸 리 티 를 XZ 유 틸 리 티 로 기 존 에 작 성 한 스 크 립 트 를 깨 지 않 고 도 바 꿀 수 있 습 니 다 . 몇 가 지 비 호 환 성 문 제 때 문 에 문 제 가 일 어 날 수 는 있 습 니 다 .

압 축 사 전 설 정 단 계
압 축 수 준 사 전 설 정 의 번 호 부 여 방 식 은 xz와 LZMA 유 틸 리 티 가 동 일 하 지 않 습 니 다 . 가 장 중 요 한 차 이 는 다 른 사 전 설 정 에 대 해 딕 셔 너 리 크 기 를 어 떻 게 대 응 했 느 냐 여 부 입 니 다 . 딕 셔 너 리 크 기 는 압 축 해 제 시 메 모 리 사 용 량 과 거 의 비 슷 합 니 다 .

딕 셔 너 리 크 기 차 이 는 압 축 프 로 그 램 메 모 리 사 용 에 영 향 을 주 지 만 , LZMA 유 틸 리 티 와 XZ 유 틸 리 티 에 서 사 용 량 이 늘 어 나 는 다 른 차 이 점 이 있 습 니 다 :

XZ 유 틸 리 티 의 기 본 사 전 설 정 수 준 값 은 -6이 지 만 LZMA 유 틸 리 티 의 기 본 사 전 설 정 수 준 값 은 -7입 니 다 . 두 프 로 그 램 의 딕 셔 너 리 메 모 리 기 본 사 용 량 은 8MiB입 니 다 .

스 트 림 vs 비 스 트 림 .lzma 파 일
파 일 을 압 축 하 지 않 은 크 기 는 .lzma 헤 더 에 저 장 합 니 다 . LZMA 유 틸 리 티 는 일 반 파 일 을 압 축 할 때 압 축 하 지 않 은 파 일 의 크 기 를 저 장 합 니 다 . 이 대 신 압 축 하 지 않 은 크 기 를 ’알 수 없 음 ’ 으 로 저 장 하 고 압 축 해 제 프 로 그 램 이 멈 춰 야 할 지 점 에 end-of-payload 마 커 를 사 용 하 는 방 법 도 있 습 니 다 . LZMA 유 틸 리 티 는 파 이 프 로 들 어 온 입 력 과 같 이 압 축 하 지 않 은 파 일 의 크 기 를 알 수 없 을 때 이 런 방 식 을 활 용 합 니 다 .

xz.lzma 파 일 을 end-of-payload 마 커 의 유 무 와 관 계 없 이 압 축 해 제 방 식 을 모 두 지 원 하 지 만 , xz로 만 든 모 든 .lzma 파 일 은 end-of-payload 마 커 를 사 용 하 며 , .lzma 헤 더 에 압 축 하 지 않 은 파 일 크 기 를 ’알 수 없 음 ’으 로 표 기 합 니 다 . 이 방 식 은 드 문 상 황 에 서 문 제 를 야 기 할 수 있 습 니 다 . 예 를 들 면 , 임 베 디 드 장 치 의 .lzma 압 축 해 제 프 로 그 램 은 압 축 을 해 제 했 을 때 크 기 를 알 아 야 동 작 합 니 다 . 이 문 제 를 만 나 면 , LZMA 유 틸 리 티 또 는 LZMA SDK를 활 용 하 여 .lzma 파 일 에 압 축 전 파 일 크 기 정 보 를 저 장 해 야 합 니 다 .

지 원 하 지 않 는 .lzma 파 일
.lzma
형 식 은 lc 값 을 8까 지 받 아 들 이 며 , lp 값 은 4까 지 받 아 들 입 니 다 . LZMA 유 틸 리 티 는 어 떤 lc 값 과 lp 값 을 받 아 들 이 고 도 압 축 을 해 제 할 수 있 지 만 , 파 일 을 만 들 때 는 늘 lc=3 값 과 lp=0 값 을 활 용 합 니 다 . 다 른 lc 값 과 lp 값 으 로 의 파 일 압 축 은 xz와 LZMA SDK에 서 만 가 능 합 니 다 .

liblzma의 LZMA1 필 터 구 현 체 에 서 는 lc 값 과 lp 값 의 합 이 4를 넘 어 가 면 안 됩 니 다 . 그 래 서 .lzma 파 일 의 경 우 이 제 한 을 넘 어 가 면 xz로 압 축 을 해 제 할 수 없 습 니 다 .

LZMA 유 틸 리 티 는 2^n (2의 승 수 )크 기 를 지 닌 딕 셔 너 리 를 가 진 .lzma 파 일 만 만 들 지 만 받 아 들 이 는 파 일 의 딕 셔 너 리 크 기 는 어 떤 크 기 든 상 관 없 습 니 다 . liblzma에 서 는 2^n, 2^n + 2^(n-1) 딕 셔 너 리 크 기 를 가 진 .lzma 파 일 만 받 아 들 입 니 다 . 이 로 인 해 .lzma 파 일 을 확 인 할 때 거 짓 양 성 율 이 늘 어 납 니 다 .

모 든 .lzma 파 일 을 liblzma 에 서 받 아 들 일 수 있 도 록 압 축 하 기 때 문 에 이 제 한 이 실 제 로 는 문 제 가 되 지 않 습 니 다 .

뒤 따 라 오 는 쓰 레 기 값
압 축 해 제 할 때 , LZMA 유 틸 리 티 는 .lzma 스 트 림 처 음 부 분 다 음 나 머 지 를 다 조 용 히 무 시 합 니 다 . 대 부 분 의 경 우 , 버 그 입 니 다 . LZMA 유 틸 리 티 에 서 .lzma 결 합 파 일 압 축 해 제 를 지 원 하 지 않 음 을 의 미 하 기 도 합 니 다 .

.lzma 스 트 림 처 음 부 분 바 로 다 음 에 데 이 터 가 남 아 있 을 경 우 , xz 에 서 는 --single-stream 옵 션 을 사 용 하 지 않 으 면 깨 진 파 일 로 간 주 합 니 다 . 이 동 작 으 로 하 여 금 뒤 따 라 오 는 쓰 레 기 값 을 무 시 하 도 록 간 주 하 는 애 매 한 스 크 립 트 동 작 을 깰 수 가 있 습 니 다 .

참 고

출 력 결 과 물 이 달 라 짐
압 축 하 지 않 은 입 력 파 일 로 부 터 얻 어 낸 정 확 한 압 축 출 력 결 과 물 은 압 축 옵 션 이 완 전 히 동 일 하 더 라 도 XZ 유 틸 리 티 의 버 전 에 따 라 달 라 질 수 있 습 니 다 . 파 일 형 식 에 영 향 을 주 지 않 고 인 코 더 그 자 체 를 개 선 (더 빠 르 게 하 거 나 더 나 은 압 축 율 로 )하 기 때 문 입 니 다 . XZ 유 틸 리 티 버 전 이 동 일 하 더 라 도 빌 드 옵 션 을 달 리 하 여 빌 드 상 태 가 제 각 각 인 경 우 출 력 결 과 물 이 달 라 질 수 있 습 니 다 .

--rsyncable 기 능 을 넣 었 을 경 우 동 일 한 xz 버 전 에 서 이 전 파 일 과 새 파 일 로 별 도 로 압 축 하 지 않 는 한 결 과 파 일 을 (두 파 일 이 서 로 다 른 파 일 이 아 니 므 로 ) rsync 처 리 할 필 요 가 없 습 니 다 . 이 문 제 는 인 코 더 구 현 체 기 능 개 발 이 끝 나 서 xz 버 전 이 다 르 더 라 도 안 정 적 인 rsync 가 능 한 출 력 결 과 물 을 유 지 할 수 있 을 때 여 야 해 결 할 수 있 습 니 다 .

내 장 .xz 압 축 해 제 프 로 그 램
XZ 임 베 디 드 와 같 은 내 장 .xz 압 축 해 제 구 현 체 는 지 원 파 일 의 무 결 성 검 사 형 식 을 nonecrc32 이 외 의 설 정 으 로 만 들 필 요 가 없 습 니 다 . 기 본 값 이 --check=crc64일 경 우 에 만 , 임 베 디 드 시 스 템 에 서 파 일 을 만 들 때 --check=none 또 는 --check=crc32 옵 션 을 사 용 해 야 합 니 다 .

임 베 디 드 시 스 템 이 아 니 라 면 , 모 든 .xz 형 식 압 축 해 제 프 로 그 램 에 서 는 모 든 검 사 형 식 을 지 원 하 거 나 , 일 부 검 사 방 식 을 지 원 하 지 않 는 다 면 , 최 소 한 , 무 결 성 검 사 로 검 증 하 지 않 고 압 축 을 해 제 할 수 있 습 니 다 .

XZ 임 베 디 드 는 BCJ 필 터 를 지 원 하 지 만 , 기 본 시 작 오 프 셋 만 지 정 할 수 있 습 니 다 .

예 제

기 본
foo
파 일 을 기 본 압 축 수 준 (-6) 으 로 foo.xz 파 일 에 압 축 해 넣 고 , 압 축 과 정 이 무 사 히 끝 나 면 foo를 삭 제 합 니 다 :

xz foo

bar.xzbar 에 압 축 을 해 제 한 후 압 축 해 제 가 무 사 히 끝 나 도 bar.xz를 삭 제 하 지 않 습 니 다 :

xz -dk bar.xz

기 본 사 전 설 정 -6 보 다 는 느 리 지 만 , 압 축 및 압 축 해 제 시 메 모 리 를 적 게 차 지 (각 각 48 Mib, 5B)는 -4e 사 전 설 정 (-4 --extreme)을 활 용 하 여 baz.tar.xz 파 일 을 만 듭 니 다 :

tar cf - baz | xz -4e > baz.tar.xz

압 축 및 비 압 축 파 일 을 단 일 명 령 으 로 표 준 출 력 에 압 축 해 제 할 수 있 습 니 다 :

xz -dcf a.txt b.txt.xz c.txt d.txt.lzma > abcd.txt

다 중 파 일 병 렬 압 축
GNU와 *BSD에 서 는 find(1) 명 령 과 xargs(1) 명 령 으 로 여 러 파 일 의 압 축 을 병 렬 처 리 할 수 있 습 니 다 :

find . -type f \! -name ’*.xz’ -print0 \ | xargs -0r -P4 -n16 xz -T1

xargs(1)-P 옵 션 으 로 xz 프 로 세 스 의 병 렬 처 리 갯 수 를 지 정 합 니 다 . -n 옵 션 의 최 적 값 은 압 축 할 파 일 수 에 달 려 있 습 니 다 . 압 축 할 파 일 이 몇 개 밖 에 없 다 면 1이 어 야 합 니 다 . 파 일 이 수 천 수 만 개 정 도 된 다 면 xargs(1) 이 어 쨌 든 지 간 에 만 들 어 낼 xz 프 로 세 스 의 겟 수 를 100으 로 하 거 나 아 니 면 적 당 한 값 을 지 정 하 여 줄 이 는 게 좋 습 니 다 .

xz-T1옵 션 을 지 정 하 면 단 일 -스 레 드 모 드 로 강 제 합 니 다 . xargs(1) 에 서 병 렬 처 리 갯 수 를 제 어 할 수 있 기 때 문 입 니 다 .

로 봇 모 드
여 러 파 일 을 압 축 한 후 저 장 할 바 이 트 용 량 을 계 산 합 니 다 :

xz --robot --list *.xz | awk ’/^totals/{print $5-$4}’

이 스 크 립 트 에 서 는 충 분 히 최 신 의 xz 명 령 을 사 용 하 는 지 알 아 보 려 합 니 다 . 다 음 sh(1) 스 크 립 트 에 서 는 xz 도 구 의 버 전 번 호 가 최 소 한 5.0.0인 지 여 부 를 검 사 합 니 다 . 이 방 식 은 --robot 옵 션 을 지 원 하 지 않 는 오 래 된 베 타 버 전 과 도 호 환 성 이 있 습 니 다 :

if ! eval "$(xz --robot --version 2> /dev/null)" || [ "$XZ_VERSION" -lt 50000002 ]; then echo "Your xz is too old." fi unset XZ_VERSION LIBLZMA_VERSION

XZ_OPT 환 경 변 수 로 압 축 해 제 시 메 뢰 사 용 량 한 계 를 설 정 하 지 만 , 한 계 값 을 이 미 설 정 했 다 면 , 값 을 늘 리 지 않 습 니 다 :

NEWLIM=$((123 << 20))  # 123 MiB OLDLIM=$(xz --robot --info-memory | cut -f3) if [ $OLDLIM -eq 0 -o $OLDLIM -gt $NEWLIM ]; then XZ_OPT="$XZ_OPT --memlimit-decompress=$NEWLIM" export XZ_OPT fi

개 별 압 축 필 터 체 인 설 정
개 별 설 정 필 터 체 인 의 초 단 순 사 용 방 식 은 LZMA2 사 전 설 정 값 을 별 도 로 설 정 하 는 방 식 입 니 다 . 사 전 설 정 은 잠 재 적 으 로 쓸 만 한 압 축 설 정 조 합 만 다 루 기 때 문 에 꽤 쓸 모 가 있 을 수 도 있 습 니 다 .

-0 ... -9 옵 션 의 설 명 에 서 테 이 블 의 CompCPU 컬 럼 과 --extreme 옵 션 은 LZMA2 사 전 설 정 을 개 별 적 으 로 맞 췄 을 때 쓸 만 할 수 도 있 습 니 다 . 여 기 관 련 내 용 을 테 이 블 둘 로 정 리 해 서 모 아 보 았 습 니 다 .

어 떤 파 일 을 압 축 할 때 상 당 히 큰 딕 셔 너 리 (예 : 32MiB)가 필 요 하 다 는 걸 알 아 채 셨 지 만 , xz -8 명 령 이 압 축 할 때 보 다 더 빠 른 속 도 로 압 축 하 려 한 다 면 , 더 큰 딕 셔 너 리 사 용 을 위 해 더 낮 은 CompCPU 사 전 설 정 값 (예 : 1)으 로 수 정 할 수 있 습 니 다 :

xz --lzma2=preset=1,dict=32MiB foo.tar

각 파 일 에 대 해 , 위 명 령 은 압 축 율 이 더 좋 아 지 면 서 도 xz -6보 다 더 빨 라 집 니 다 . 그 러 나 , CompCPU 값 을 낮 게 유 지 하 는 대 신 큰 딕 셔 너 리 에 서 일 부 파 일 을 강 조 해 야 합 니 다 . 큰 딕 셔 너 리 가 대 부 분 의 도 움 을 주 는 매 우 명 백 한 상 황 에 서 는 최 소 한 몇 메 가 바 이 트 의 매 우 유 사 한 각 파 일 이 아 카 이 브 에 들 어 갑 니 다 . 딕 셔 너 리 크 기 는 LZMA2가 연 속 으 로 존 재 하 는 각 파 일 의 유 사 성 으 로 부 터 얻 는 장 점 을 취 할 수 있 을 때 일 부 개 별 파 일 보 다 훨 씬 더 커 집 니 다 .

압 축 프 로 그 램 과 압 축 해 제 프 로 그 램 에 서 메 모 리 를 엄 청 많 이 사 용 해 도 상 관 없 고 , 파 일 을 수 백 메 가 바 이 트 메 모 리 용 량 을 활 용 하 여 압 축 한 다 면 , xz -9 명 령 에 64MiB 용 량 을 초 과 하 는 딕 셔 너 리 를 사 용 할 수 있 게 하 는 방 법 도 쓸 만 할 지 도 모 릅 니 다 :

xz -vv --lzma2=dict=192MiB big_foo.tar

위 예 제 에 서 와 같 이 -vv (--verbose --verbose) 옵 션 을 사 용 하 면 압 축 및 압 축 해 제 과 정 에 서 필 요 한 메 모 리 용 량 을 살 펴 보 는 데 요 긴 할 수 있 습 니 다 . 압 축 해 제 한 파 일 크 기 보 다 더 큰 딕 셔 너 리 를 사 용 하 면 불 필 요 한 메 모 리 소 모 량 이 발 생 하 여 위 명 령 이 작 은 파 일 에 는 쓸 모 없 음 을 기 억 하 십 시 오 .

때 로 는 압 축 시 간 이 딱 히 상 관 이 없 을 수 도 있 습 니 다 만 , 압 축 해 제 시 메 모 리 사 용 량 을 적 게 유 지 해 야 할 수 도 있 습 니 다 . 예 를 들 면 , 임 베 디 드 시 스 템 에 서 파 일 압 축 을 해 제 할 수 도 있 습 니 다 . 다 음 명 령 의 경 우 -6e (-6 --extreme) 옵 션 을 기 반 옵 션 을 사 용 하 며 딕 셔 너 리 크 기 를 64KiB만 사 용 하 도 록 제 한 합 니 다 . 결 과 파 일 은 XZ 임 베 디 드 (이 게 --check=crc32 옵 션 이 있 는 이 유 )로 100KiB 메 모 리 용 량 을 활 용 하 여 풀 어 낼 수 있 습 니 다 .

xz --check=crc32 --lzma2=preset=6e,dict=64KiB foo

가 능 한 한 수 바 이 트 를 더 쥐 어 짜 내 고 싶 을 때 , 리 터 럴 문 맥 비 트 수 (lc)와 위 치 비 트 수 (pb)를 조 정 하 면 도 움 이 될 수 도 있 습 니 다 . 리 터 럴 위 치 비 트 수 (lp)를 조 금 건 드 리 는 것 또 한 도 움 이 될 지 도 모 르 겠 지 만 보 통 lc 값 과 pb 값 이 더 중 요 합 니 다 . 예 를 들 면 , 소 스 코 드 저 장 파 일 에 는 US-ASCII 텍 스 트 가 대 부 분 이 기 에 , 다 음 과 같 은 경 우 는 xz -6e 명 령 을 실 행 했 을 때 부 다 는 아 주 약 간 (거 의 0.1% 수 준 ) 작 은 파 일 을 얻 어 낼 수 도 있 습 니 다 (lc=4를 빼 고 도 시 도 해 보 십 시 오 ):

xz --lzma2=preset=6e,pb=0,lc=4 source_code.tar

LZMA2와 다 른 필 터 를 함 께 사 용 하 면 일 부 파 일 형 식 에 대 해 압 축 율 을 개 선 할 수 있 습 니 다 . 예 를 들 면 x86-32 또 는 x86-64 공 유 라 이 브 러 리 를 x86 BCJ 필 터 를 활 용 하 여 압 축 할 경 우 :

xz --x86 --lzma2 libfoo.so

참 고 로 필 터 옵 션 의 순 서 는 상 당 히 중 요 합 니 다 . --x86--lzma 이 전 에 지 정 하 면 xz에 서 오 류 가 나 는 데 , LZMA2 다 음 에 는 어 떤 필 터 든 설 정 할 수 없 고 , 옵 션 체 인 상 마 지 막 필 터 로 x86 BCJ 필 터 를 사 용 할 수 없 기 때 문 입 니 다 .

LZMA2와 델 타 필 터 는 비 트 맵 그 림 에 최 적 의 결 과 를 가 져 다 줄 수 있 습 니 다 . PNG에 보 통 안 성 맞 춥 인 데 , PNG에 는 단 순 델 타 필 터 보 단 약 간 더 고 급 진 필 터 를 사 용 하 지 만 , 실 제 압 축 을 진 행 할 때 는 Deflate를 사 용 하 기 때 문 입 니 다 .

예 를 들 어 이 미 지 를 압 축 하 지 않 은 비 압 축 TIFF로 저 장 해 야 하 는 경 우 가 있 습 니 다 . 델 타 필 터 의 거 리 매 개 변 수 는 그 림 에 서 픽 셀 당 바 이 트 수 에 일 치 하 도 록 설 정 합 니 다 . 예 를 들 면 , 24비 트 RGB 비 트 맵 의 경 우 dist=3 거 리 매 개 변 수 값 을 설 정 해 야 하 며 , LZMA2 압 축 시 3바 이 트 정 렬 을 따 르 도 록 pb=0 값 을 전 달 하 는 방 법 도 바 람 직 합 니 다 .

xz --delta=dist=3 --lzma2=pb=0 foo.tiff

여 러 이 미 지 를 단 일 아 카 이 브 로 넣 고 싶 다 면 (예 : .tar), 모 든 이 미 지 에 대 해 동 일 한 픽 셀 당 바 이 트 수 가 들 어 가 는 경 우 에 도 델 타 필 터 가 동 작 합 니 다 .

추 가 참 조

xzdec(1), xzdiff(1), xzgrep(1), xzless(1), xzmore(1), gzip(1), bzip2(1), 7z(1)

XZ 유 틸 리 티 : <https://tukaani.org/xz/>;
XZ 임 베 디 드 : <https://tukaani.org/xz/embedded.html>;
LZMA SDK: <https://7-zip.org/sdk.html>;