Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기
xz는 파일을 .xz 형식으로 압축합니다. 개별 파일 압축 도구이므로 디렉터리 구조를 함께 보관하려면 tar와 결합해야 합니다.
xz 명령어란?
기본적으로 file을 file.xz로 바꾸고 원본을 제거합니다. -k는 원본 보존, -c는 표준 출력, -T는 압축 스레드 수 지정에 사용합니다. 높은 압축 수준은 처리 시간과 메모리 사용량이 늘 수 있으므로 무조건 최대값을 선택할 필요는 없습니다.
기본 문법
xz [옵션] [파일 ...]
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man xz으로 현재 시스템의 설명을 확인하세요.
사용 예제
원본 유지하며 압축
-k로 입력 파일을 남깁니다.
xz -k database.sql
압축 결과를 별도 이름으로 저장
표준 출력으로 압축 데이터를 보냅니다. 대상 파일의 존재 여부를 먼저 확인합니다.
xz -c database.sql > database-copy.sql.xz
압축 파일 검사
실제 추출 파일을 만들지 않고 압축 데이터 오류를 확인합니다.
xz -t database.sql.xz
xz 압축과 테스트 결과
xz는 단일 파일을 .xz 형식으로 압축합니다. 기본적으로 원본을 대체하므로 원본을 보존하려면 -k를 사용합니다.
xz -k note.txt xz -t note.txt.xz ls note.txt*
예시 출력:
note.txt note.txt.xz
xz -t는 압축 데이터 구조를 검사하며 정상일 때 일반적으로 메시지가 없습니다. 이미 .xz 파일이 존재하면 덮어쓰지 않고 실패하거나 확인을 요구할 수 있습니다. 여러 파일을 한 파일로 묶는 용도라면 tar -cJf처럼 아카이브와 압축을 결합하세요.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-k |
처리한 입력 파일을 유지합니다. |
-c |
결과를 표준 출력으로 보냅니다. |
-t |
압축 파일을 검사합니다. |
-0 ... -9 |
압축 수준을 선택합니다. |
-T 스레드수 |
압축 작업의 스레드 수를 지정합니다. |
사용할 때 주의할 점
기본 실행은 원본 파일을 제거합니다. -9e처럼 높은 설정은 메모리와 시간이 더 들 수 있고 복원 환경의 제약도 고려해야 합니다. .xz는 다중 파일 아카이브가 아니며, 파일 보안이나 암호화를 제공하지 않습니다.
자주 묻는 질문
xz와 tar.xz의 차이는 무엇인가요?
.xz는 보통 파일 하나의 압축 스트림이고, .tar.xz는 tar로 여러 파일을 묶은 뒤 xz로 압축한 아카이브입니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 xz 관련 공식 문서에서 확인할 수 있습니다.









