CPIO(1L)

명칭
cpio - archive파일에의 파일의 카피나, archive파일로부터 파일에의 카피를 행한다

서식
cpio {-o|--create} [-0acvABLV] [-C bytes] [-H format] [-M message] [-O [[user@]host:]archive] [-F [[user@]host:]archive] [--file=[[user@]host:]archive] [--format=format] [--message=message] [--null] [--reset-access-time] [--verbose] [--dot] [--append] [--block-size=blocks] [--dereference] [--io-size=bytes] [--quiet] [--force-local] [--help] [--version] < name-list [> archive] cpio {-i|--extract} [-bcdfmnrtsuvBSV] [-C bytes] [-E file] [-H format] [-M message] [-R [user][:. ][group]] [-I [[user@]host:]archive] [-F [[user@]host:]archive] [--file=[[user@]host:]archive] [--make-directories] [--nonmatching] [--preserve-modification-time] [--numeric-uid-gid] [--rename] [--list] [--swap-bytes] [--swap] [--dot] [--unconditional] [--verbose] [--block-size=blocks] [--swap-halfwords] [--io-size=bytes] [--pattern-file=file] [--format=format] [--owner=[user][:. ][group]] [--no-preserve-owner] [--message=message] [--force-local] [--no-absolute-filenames] [--sparse] [--only-verify-crc] [--quiet] [--help] [--version] [pattern...] [< archive] cpio {-p|--pass-through} [-0adlmuvLV] [-R [user][:. ][group]] [--null] [--reset-access-time] [--make-directories] [--link] [--quiet] [--preserve-modification-time] [--unconditional] [--verbose] [--dot] [--dereference] [--owner=[user][:. ][group]] [--no-preserve-owner] [--sparse] [--help] [--version] destination-directory < name-list

해설
이 메뉴얼은, GNU 판의 cpio 에 대해 설명합니다. cpio (은)는, cpio 형식 혹은 tar 형식의 archive파일에 격납된 파일을 꺼내거나 그 역을 행하거나 합니다. archive파일이란, 격납된다 파일 그 자체에 가세해 그것들 개개의 파일에 대한 파일명이나 소유자, 타임 스탬프, 액세스권한과 같은 정보를 포함하는 것 같은 파일입니다. archive파일은, 디스크상의 파일에서도, 자기테이프상에 격납되어 있는 파일에서도, 혹은 파이프여도 상관하지 않습니다. cpio (은)는, 3 개의 조작 모드를 가지고 있습니다.

카피 아웃 모드에서는, cpio (은)는 파일을 archive파일에 카피합니다. cpio 는, 표준 입력으로부터 파일명의 리스트를 1 행씩 읽어들여, 표준 출력에 그 파일의 아카이브(archive)를 써냅니다. 파일 리스트의 작성에는, find 명령이 많이 사용됩니다. find 명령에서는, -d 옵션을 부가해, 디렉토리의 속성에 의해 기입 불가이거나 검색을 할 수 없거나 하는 문제를 최소한으로 억제하도록(듯이) 해 주세요.

카피 인 모드에서는, cpio (은)는 파일을 archive파일로부터 파일을 (꺼내) 카피하거나 아카이브(archive)의 내용의 리스트를 표시하거나 합니다. cpio 는, 아카이브(archive)를 표준 입력으로부터 읽어들입니다. 옵션이 아니다 명령행의 인수는, 모두 쉘에 의해 전개되는 캐릭터 라인으로서 해석됩니다. 이것에 의해, 아카이브(archive)내의 파일명이, 이 캐릭터 라인에 의해 지정되는 패턴에 매치 하는 파일만을 전개할 수가 있습니다. 또, 쉘에서의 해석과는 달라, 파일명의 선두에 `. '를 포함한 파일명은, 꺼내는 파일로서 지정한 패턴의 최초로 와일드 카드를 포함한 경우, 패턴이 일치합니다. 또, 파일명에 `/'를 포함한 파일명도 와일드 카드에 의해 일치합니다. 패턴이 지정되지 않는 경우에는, 모든 파일이 전개 대상이 됩니다.

카피 패스 모드에서는, cpio (은)는 파일을 있는 디렉토리로부터 다른 디렉토리에 카피합니다. 실제로는, archive파일을 이용하지 말고, 카피 아웃 모드와 카피 인 모드를 조합해 실행하는 것 같은 형태가 됩니다. cpio 는, 카피하는 파일 리스트를 표준 입력으로부터 읽어들입니다. 이러한 파일의 카피처의 디렉토리에 대해서는, 옵션 이외의 인수로 주어집니다.

cpio (은)는, binary, old ASCII, new ASCII, crc, HPUX binary, HPUX old ASCII, old tar, POSIX. 1 tar 의 각 형식의 아카이브(archive) 포맷을 서포트합니다. binary 포맷은, 다른 머신 아키텍쳐간으로는 호환성이 없는 방법으로, 파일의 정보를 encode 하므로, 거의 사용되지 않습니다 (즉, binary 포맷은, 다른 머신 아키텍쳐간으로, 호환성이 없는 아카이브(archive)를 생성하므로, 그다지 사용되지 않는다고 하는 것입니다). old ASCII 포맷은, 다른 머신 아키텍쳐의 사이에서의 호환성은 유지됩니다만, 65536 개를 넘는 i-node 를 갖추는 시스템으로 사용되는 것을 상정하지 않았습니다. new ASCII 포맷은, 다른 머신 아키텍쳐의 사이에서의 아카이브(archive)의 호환성은 유지됩니다. old ASCII 포맷과 같이, 파일 시스템의 사이즈의 제한은 없습니다만, 모든 버젼의 cpio 그리고 이 형식을 서포트하는 것은 아닙니다. 현상으로 이 포맷을 서포트하는 cpio 는, GNU cpio 와 Unix System V R4 의 cpio 뿐입니다. crc 포맷은, new ASCII 포맷과 닮아 있습니다만, 아카이브(archive) 작성시에 cpio 하지만 각 파일에 대해 체크 섬을 계산해, 아카이브(archive)내에 포함하는 곳(중)이 다릅니다. 이 체크 섬은, 아카이브(archive)로부터 파일을 꺼낼 때의 베리파이에 사용됩니다. HPUX 포맷은, 디바이스 파일을 격납하는 형식이 다른 cpio 와 다르다 HPUX 의 cpio 형식과의 호환성을 갖게하기 위해서(때문에) 존재합니다.

tar 포맷은, tar (와)과의 호환성을 갖게하기 위해서(때문에) 존재합니다. tar 포맷에서는, 아카이브(archive) 된다 파일명으로서는, 100 캐릭터를 넘는 것은 사용할 수 없습니다. 또, 특수 파일 (블록 디바이스나 캐릭터 디바이스)을 아카이브(archive) 한다 일도 할 수 없습니다. POSIX. 1 tar 포맷은, 아카이브(archive) 되는 파일명으로서는, 255 캐릭터를 넘는 것은 사용할 수 없습니다. (정확히 그 자리소에,"/" 가 포함되는 경우는 제외합니다).

디폴트에서는, cpio (은)는 낡다 cpio (와)과의 호환성을 유지하기 위해서(때문에) 바이너리 포맷 아카이브(archive)를 작성합니다. 아카이브(archive)를 전개하는 경우에는, cpio (은)는 자동적으로 읽힌 아카이브(archive)의 종류를 인식하므로, 다른 바이트 오더의 머신으로 작성된 아카이브(archive)를 읽을 수가 있습니다.

cpio 의 옵션에는, 조작 모드를 지정하는 것도 있습니다. 어느 옵션이 어느 모드에 대응할까에 대해서는, 서식의 섹션을 봐 주세요.

  옵션

-0, --null
    카피 아웃 및 카피 패스 모드에 대해, 개행의 대신에 널 캐릭터로 종료한다 파일명의 리스트를 읽어들입니다. 이것에 의해, 개행을 포함한 파일명을 가진다 파일을 아카이브(archive) 할 수 있습니다. GNU find (을)를 사용하는 것으로, 널 캐릭터로 종료하는 파일명의 리스트를 생성할 수가 있습니다.

-a, --reset-access-time
    파일을 읽어들인 후에, 그러한 파일의 access time의 재설정을 행합니다. 이것은, 이러한 파일이 그 시점에서 읽혔지만 같게 안보이게 하기 (위해)때문입니다.

-A, --append
    벌써 존재하는 archive파일에 추가 기입을 합니다. 이 옵션은 카피 아웃 모드에서만 사용할 수가 있습니다. 이 옵션을 사용하기 위해서(때문에)는, archive파일이, -O 또는, -F (--file) 옵션으로 지정한 이름의 디스크상의 (아카이브(archive)) 파일로 없으면 안됩니다.

-b, --swap
    카피 인 모드에 대해, 데이터중의 1 워드 (32 비트) 데이터의 상하 16 비트 (을)를 바꿔 넣어 1 하프 워드 (16 비트)의 상하 8 비트를 바꿔 넣습니다. 본옵션은, -sS (와)과 동등합니다. 이 옵션은, 빅 endian 머신과 little endian의 머신의 사이에 32 비트 정수를 변환하기 위해서 이용합니다.

-B  I/O 블록 사이즈를 5120 바이트로 설정합니다. 블록 사이즈의 초기치는 512 바이트입니다.

--block-size=BLOCK-SIZE
    I/O 블록 사이즈를 BLOCK-SIZE * 512 바이트로 설정합니다.

-c  아카이브(archive) 형식으로서 old ASCII 포맷 (즉 낡은 호환 아카이브(archive) 포맷)(을)를 이용합니다.

-C IO-SIZE, --io-size=IO-SIZE
    I/O 블록 사이즈를 IO-SIZE 로 지정한 바이트수로 설정합니다.

-d, --make-directories
    필요에 따라서 디렉토리를 작성합니다.

-E FILE, --pattern-file=FILE
    카피 인 모드에 대해, 파일명 FILE 로부터 전개하거나 파일 리스트를 표시하거나 하기 위해서, 파일명을 특정하는 패턴 지정을 읽어들입니다. 파일명 FILE 로 특정할 수 있는 파일에 기술된 각 행은, cpio 의 옵션 이외의 캐릭터 라인으로 지정되었지만 같게 다루어집니다.

-f, --nonmatching
    주어진 패턴의 어느 것에도 일치하지 않는 파일만 취급합니다.

-F, --file=archive
    표준 입력 혹은 표준 출력의 대신에, 지정된 archive파일을 이용합니다. 다른 머신의 테이프 드라이브를 archive파일로서 취급한다 경우에는, `HOSTNAME:'로 시작되는 파일명을 사용해 주세요. 호스트명은, 그 유저로서 리모트 테이프 드라이브를 액세스 하기 위해서 유저명과 '@'를 먼저 써도 상관하지 않습니다 (전형적으로는, 그 유저의 `~/.rhosts'엔트리에 엔트리가 존재하는 머신인 것이 많은 듯 합니다).

--force-local
    -F, -I, -O 의 몇개의 옵션을 이용했을 경우에, 코론 캐릭터를 포함한 파일명을 로컬 파일명과 간주라고 취급합니다. 통상, 코론 캐릭터는, 리모트 호스트명과 게다가의 로컬 파일명을 단락짓는 경우에 사용됩니다.

-H FORMAT, --format=FORMAT
    아카이브(archive) 포맷으로서 FORMAT 의 것을 이용합니다. FORMAT 의 부분으로 지정할 수 있는 캐릭터 라인을 이하에 나타냅니다. 이러한 이름은, 모두 대문자의 경우에서도 인식됩니다. 카피 인 모드에서의 디폴트는, 입력 파일의 내용으로부터 자동적으로 아카이브(archive) 포맷을 판정하는 것으로, 카피 아웃 모드에서는,"bin" 포맷이 디폴트입니다.

    bin binary 포맷입니다. 거의 사용되지 않습니다.

    odc old ASCII (POSIX. 1 호환) 포맷입니다.

    newc
        new ASCII (SVR4 호환) 포맷입니다. new ASCII 포맷은, 65536 개를 넘는 i-node 를 갖춘다 파일 시스템을 서포트합니다.

    crc crc 포맷입니다. crc 포맷은, new ASCII 포맷과 닮아 있습니다만, 체크 섬을 포함합니다.

    tar old tar 포맷입니다.

    ustar
        POSIX. 1 tar 포맷입니다. GNU tar 아카이브(archive)도 취급할 수가 있습니다. POSIX. 1 tar 와 GNU tar 는, 잘 닮습니다만, 같지는 않습니다.

    hpbin
        HPUX 의 cpio 로 사용되고 있다, 그다지 사용되지 않는 binary 포맷입니다. (다른 cpio 와는 다른 형식에서, 디바이스 파일을 보존합니다).

    hpodc
        HPUX 의 cpio 로 사용되고 있는 호환 포맷입니다 (다른 cpio 와는 다른 형식에서, 디바이스 파일을 보존합니다).

-i, --extract
    카피 인 모드로 동작합니다.

-I archive
    표준 입력의 대신에, 지정된 archive파일명을 이용합니다. 다른 머신의 테이프 드라이브를 archive파일로서 취급하는 경우에는, `HOSTNAME:' 그리고 시작되는 파일명을 사용해 주세요. 호스트명은, 그 유저로서 리모트 테이프 드라이브를 액세스 하기 위해서 유저명과 '@'를 먼저 써도 상관하지 않습니다 (전형적으로는, 그 유저의 `~/.rhosts'엔트리에 엔트리가 존재하는 머신인 것이 많은 듯 합니다).

-k  무시됩니다. 다른 버젼의 cpio (와)과의 호환성을 유지하기 위해서(때문에) 마셔 존재합니다.

-l, --link
    가능하면, 파일을 카피하는 대신에 링크합니다 ( -p 옵션과 함께 지정할 때 마셔 사용할 수 있습니다).

-L, --dereference
    기호 연결을 참조를 이용하지 않습니다. 기호 연결 파일을 카피하는 대신에, 기호 연결 파일이 가리키는 실체의 파일을 카피합니다.

-m, --preserve-modification-time
    카피처의 파일 생성시에, 카피원의 파일의 갱신 시각을 보관 유지합니다.

-M MESSAGE, --message=MESSAGE
    백업 매체 (테이프나 floppy disk등)의 볼륨 종단까지 도달했을 경우에, MESSAGE 로 지정된 캐릭터 라인을 출력합니다. 이 지정을 하는 것으로, 유저에게 새로운 매체의 삽입 지시를 내리는 것이 가능하게 됩니다. MESSAGE 그리고 지정되는 캐릭터 라인에 "%d" 가 포함되는 경우에는,"%d" 캐릭터 라인은, 현재의 매체통번 (1 으로부터 시작합니다)(으)로 옮겨집니다.

-n, --numeric-uid-gid
    장황 모드로 내용의 리스트를 내는 경우에, UID 및 GID 를, 그 ID 의 대응하는 유저명 / 그룹명이 아니고, 숫자로 표시합니다.

--no-absolute-filenames
    카피 인 모드로, 아카이브(archive)중에 절대 파일명으로 격납되고 있었다고 해도, 현재의 디렉토리로부터의 상대로 파일을 생성합니다.

--no-preserve-owner
    카피 인 모드 및 카피 패스 모드에 대해, 파일의 소유자를 변경하지 않습니다. 이것은, 전개 후의 파일의 소유자는, 실제로 파일의 전개를 행하고 있는 유저가 되는 것을 나타냅니다. 이 옵션은, 슈퍼 유저 이외의 유저가 사용하는 경우에는 디폴트로 유효하게 됩니다. 이것은, System V 의 유저가, 잘못해 파일의 소유권을 손놓지 않게 하기 (위해)때문입니다.

-o, --create
    카피 아웃 모드로 동작합니다.

-O archive
    표준 출력의 대신에, 지정한 archive파일을 이용합니다. 다른 머신의 테이프 드라이브를 archive파일로서 취급하는 경우에는, `HOSTNAME:'로 시작되는 파일명을 사용해 주세요. 호스트명은, 그 유저로서 리모트 테이프 드라이브를 액세스 하기 위해서 유저명과 '@'를 먼저 써도 상관하지 않습니다 (전형적으로는, 그 유저의 `~/.rhosts'엔트리에 엔트리가 존재하는 머신인 것이 많은 듯 합니다).

--only-verify-crc
    카피 인 모드로 CRC 포맷의 아카이브(archive)를 읽어들일 때에, 아카이브(archive)내의 각 파일의 CRC 를 베리파이 하는 것만으로, 실제로 파일을 꺼내지 않습니다.

-p, --pass-through
    카피 패스 모드로 동작합니다.

--quiet
    카피된 블록수를 표시하지 않습니다.

-r, --rename
    대화적으로 파일명을 변경합니다.

-R [user][:. ][group], --owner [user][:. ][group]
    카피 아웃 모드 및 카피 패스 모드에 대해, 모든 생성 파일의 소유권을 지정한 유저, 그룹으로 설정합니다. 유저 혹은 그룹의 어느 쪽인지, 혹은 양쪽 모두 지정될 필요가 있습니다. 만약 그룹의 지정은 생략 되었지만,":" 혹은 ". " separator가 지정되었을 경우에는, 유저의 로그인 그룹이 그룹으로서 설정됩니다. 슈퍼 유저만이 파일의 소유권을 변경하는 것이 가능합니다.

--sparse
    카피 아웃 모드 및 카피 패스 모드에 대해, 0 으로부터 완성되는 큰 블록을 가지는 파일을 드문드문한 파일로서 씁니다.

-s, --swap-bytes
    카피 인 모드에 대해, 파일중의 데이터의 16 비트의 상위 8 비트와 하위 8 비트를 바꿔 넣습니다.

-S, --swap-halfwords
    카피 인 모드에 대해, 파일중의 데이터의 32 비트의 상위 16 비트와 하위 16 비트를 바꿔 넣습니다.

-t, --list
    입력 파일명의 일람을 출력합니다.

-u, --unconditional
    벌써 존재하고 있는 새로운 파일을 낡은 파일로 옮겨놓는지 어떤지의 문의를 하는 일 없이, 모든 파일을 덧쓰기합니다.

-v, --verbose
    처리된 파일명을 표시합니다 (장황 모드라고 하는 것입니다). -t 옵션이 동시에 지정되었을 경우에는, `ls -l'형식의 표시를 얻는 것이 할 수 있습니다. ustar 포맷의 아카이브(archive)로부터 얻을 수 있는 표시에 대해서는, 로컬 시스템에 존재하지 않는 유저명 및 그룹명의 파일에 대해서는, 아카이브(archive)내에 격납된 UID 및 GID 의 값에 대응하는 로컬에서의 유저명, 그룹명에 옮겨놓아 그 부분을 표시합니다.

-V --dot
    각 파일을 처리할 때 마다,". " (을)를 표시합니다.

--version
    cpio 의 프로그램 버젼을 표시해 종료합니다.