pax (Portable Archive eXchange)는 유닉스·리눅스 계열 운영체제에서 제공되는 파일 아카이브와 복원 기능을 수행하는 명령어이다. tar와 cpio의 기능을 통합·보완하기 위해 설계되었으며, POSIX 표준(IEEE 1003.1)에 정의된 포터블 아카이브 포맷을 지원한다.
개요
- 목적: 파일 및 디렉터리 구조를 하나의 아카이브 파일로 저장하거나, 아카이브 파일로부터 원래의 파일 트리를 복원한다.
- 표준화: POSIX 2001(IEEE 1003.1)에서 규정한 표준 유틸리티 중 하나이며, 다양한 Unix 계열 시스템에 기본 제공된다.
- 지원 포맷:
ustar,cpio,pax자체 포맷 등 여러 아카이브 형식을 읽고 쓸 수 있다.
주요 옵션
| 옵션 | 의미 |
|---|---|
-r |
아카이브를 읽어 복원(restore)한다. |
-w |
현재 디렉터리·파일을 아카이브에 기록한다(write). |
-x <format> |
읽을 아카이브의 포맷을 지정한다(ustar, cpio, pax 등). |
-f <file> |
아카이브 파일명을 지정한다. (-이면 표준 입력/출력) |
-p <dir> |
복원 시 대상 디렉터리를 지정한다. |
-s <subst> |
파일명 변환 규칙을 지정한다(예: s/old/new/). |
-c |
파일 목록을 표준 출력에 표시한다(복원 없이 목록 확인). |
-v |
진행 상황을 자세히 표시한다(verbose). |
-b <size> |
블록 크기를 지정한다(기본 512 bytes). |
-L |
심볼릭 링크를 대상 파일로 따라간다. |
-P |
심볼릭 링크를 그 자체로 저장한다. |
사용 예시
-
디렉터리 전체를 아카이브 파일로 저장
pax -w -f backup.pax /home/user→
/home/user이하의 파일·디렉터리를backup.pax에 기록한다. -
아카이브를 현재 디렉터리로 복원
pax -r -f backup.pax→
backup.pax에 포함된 구조를 현재 작업 디렉터리로 재구성한다. -
특정 포맷(
ustar)으로 읽고, 복원 위치 지정pax -r -x ustar -f archive.tar -p /tmp/restored -
파일명 변환을 적용하면서 복원
pax -r -f archive.pax -s ',^old_,new_,'→
old_접두사가 붙은 파일명을new_로 바꾸어 복원한다.
장점 및 제한점
- 장점
tar와cpio를 동시에 지원해 호환성이 높다.- POSIX 표준이므로 다양한 플랫폼에서 동일하게 동작한다.
- 파일명 변환(
-s) 등 유연한 옵션 제공.
- 제한점
- 최신 배포판에서는
tar가 기본 아카이브 도구로 더 널리 사용되며,pax는 상대적으로 문서·사용자 예시가 적다. - 일부 고급 압축 옵션(
gzip,bzip2등)은 별도 파이프라인(| gzip)을 사용해야 한다.
- 최신 배포판에서는
역사
- 1990년대 초: AT&T UNIX System V에
pax가 도입되며,tar·cpio의 대체·보완을 목표로 설계되었다. - 1997년: POSIX.1-1997 표준에 포함되어 국제 표준으로 인정받았다.
- 현재: 거의 모든 주요 Unix·Linux 배포판(예: GNU coreutils, BSD, macOS)에서 기본 제공되며, 스크립트·배포 자동화 등에 활용된다.
참고 문서
- POSIX.1‑2008, pax – Portable Archive Interchange 표준 규격
man pax(시스템 매뉴얼 페이지)- GNU Coreutils Manual – pax
이 항목은 최신 POSIX 표준과 주요 Unix 구현을 기반으로 작성되었습니다.