WIPIVERSE

pax (명령어)

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 심볼릭 링크를 그 자체로 저장한다.

사용 예시

  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_로 바꾸어 복원한다.

장점 및 제한점

  • 장점
    • 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 구현을 기반으로 작성되었습니다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기