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 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / lsmod - 로드된 커널 모듈 확인

Linux / 명령어 / lsmod - 로드된 커널 모듈 확인

Linux lsmod 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux 강좌 / 파일 권한 읽고 바꾸기와 sudo 사용법

Linux 강좌 / 파일 권한 읽고 바꾸기와 sudo 사용법

리눅스 파일과 디렉터리의 읽기·쓰기·실행 권한을 해석하고 chmod로 실습 파일의 권한을 바꿉니다. sudo의 사용 범위와 권한 오류를 진단하는 순서도 설명합니다.

Linux / 명령어 / gzip - 파일을 gzip 형식으로 압축하기

Linux / 명령어 / gzip - 파일을 gzip 형식으로 압축하기

Linux gzip 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.

Linux / 명령어 / locate - 파일 이름 색인에서 빠르게 경로 검색

Linux / 명령어 / locate - 파일 이름 색인에서 빠르게 경로 검색

Linux locate 명령어로 파일 이름 색인을 빠르게 검색하는 방법을 설명합니다. updatedb, 최신성 한계, 패턴과 정규 표현식, find와의 차이를 정리합니다.

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

Linux / 명령어 / systemctl - systemd 서비스 상태 확인과 관리

Linux systemctl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / comm - 정렬된 두 파일의 공통·고유 행 비교

Linux / 명령어 / comm - 정렬된 두 파일의 공통·고유 행 비교

Linux comm 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

Linux / 리눅스 배포판 종류와 버전 확인하는 방법

리눅스 배포판 종류와 버전을 /etc/os-release, hostnamectl, uname 명령으로 확인하는 방법을 설명합니다. 배포판 계열과 커널 버전의 차이, 스크립트 활용법과 컨테이너·WSL 환경의 주의점도 함께 정리합니다.

Linux 강좌 / 프로세스 확인·일시정지·종료하기

Linux 강좌 / 프로세스 확인·일시정지·종료하기

ps, top, pgrep으로 프로세스의 상태와 자원 사용량을 확인합니다. 실습 프로세스에 STOP, CONT, TERM을 보내고 셸 작업과 서비스의 차이를 익힙니다.

Linux / 명령어 / history - 명령어 실행 기록 확인

Linux / 명령어 / history - 명령어 실행 기록 확인

Bash history 명령어로 이전 명령을 조회·검색·재실행·삭제하는 방법을 설명합니다. ~/.bash_history, HISTCONTROL, HISTTIMEFORMAT, histappend와 여러 터미널 기록 동기화 방법도 함께 정리합니다.

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux / 명령어 / parted - 파티션 표와 빈 공간 확인·관리

Linux parted 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.