pax (명령어)

pax (Portable Archive eXchange)는 유닉스·리눅스 계열 운영체제에서 제공되는 파일 아카이브와 복원 기능을 수행하는 명령어이다. tarcpio의 기능을 통합·보완하기 위해 설계되었으며, 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 심볼릭 링크를 그 자체로 저장한다.

사용 예시

  1. 디렉터리 전체를 아카이브 파일로 저장

    pax -w -f backup.pax /home/user
    

    /home/user 이하의 파일·디렉터리를 backup.pax에 기록한다.

  2. 아카이브를 현재 디렉터리로 복원

    pax -r -f backup.pax
    

    backup.pax에 포함된 구조를 현재 작업 디렉터리로 재구성한다.

  3. 특정 포맷(ustar)으로 읽고, 복원 위치 지정

    pax -r -x ustar -f archive.tar -p /tmp/restored
    
  4. 파일명 변환을 적용하면서 복원

    pax -r -f archive.pax -s ',^old_,new_,'
    

    old_ 접두사가 붙은 파일명을 new_로 바꾸어 복원한다.

장점 및 제한점

  • 장점
    • tarcpio를 동시에 지원해 호환성이 높다.
    • 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 구현을 기반으로 작성되었습니다.

둘러보기

더 찾아볼 만한 주제