TAR(1)

명칭
tar - 테이프 아카이버; "tar" archive파일의 조작

서식
tar [[-]bundled-options Args] [gnu-style-flags] [filenames | -C directory-name] ...

해설
tar (은)는, 역사적인 이유에 의해 “tape archiver” (을)를 생략 해 이름이 붙여졌습니다. tar 프로그램은, tarfile (으)로 불린다 tar 포맷의 archive파일을 작성해, 아카이브(archive)에 파일을 추가하거나 또 아카이브(archive)로부터 파일을 추출하거나 합니다. tarfile (은)는 통상 자기테이프를 가리킵니다만, 플로피 디스켓이나 통상의 파일에서도 상관하지 않습니다.

통상, tar 명령행의 최초의 인수는, 기능 캐릭터 및 기능 변경 캐릭터로부터 되는 단어이며, 그 전에 데쉬 (-)를 붙여도 붙이지 않아도 좋은 것 같게 되어 있습니다. 단어에는, 다음의 기능 캐릭터의 쳐 꼭 1 개(살)을 포함하고 있을 필요가 있습니다: A, c, d, r, t, u, x, 이것들은 각각, 추가 (append) , 작성 (create) , 차분 (difference) , 치환 (replace) , 리스트 표시 (table of contents) , 갱신 (update) , 추출 (extract) (을)를 의미하고 있습니다 (아래와 같이에 상세가 있습니다). 이러한 그 밖에, 이하에 상세를 말하는 기능 변경 캐릭터를, 명령 단어에 포함할 수가 있습니다. 그러한 몇개인가는, 명령 단어내와 같은 순서로 명령행 인수를 요구합니다 ( 사용예 시에를 참조). 기능 캐릭터와 기능 변경 캐릭터는, GNU 형식의 인수로 지정할 수도 있습니다 (2 개의 데쉬를 최초로 붙여 1 개의 명령 단어 마다 기능 캐릭터인가 기능 변경 캐릭터를 1 개만 지정한다). 아카이브(archive)에의 추가, 어카이브(archive)로부터의 추출, 그리고 리스트 표시를 위해서(때문에) 명령행 지정하는 파일명에는, 쉘의 패턴 매치 캐릭터 라인을 사용할 수가 있습니다.

기능
이하의 기능의 어느쪽이든 1 개(살)만을 반드시 지정할 필요가 있습니다.

-A
--catenate
--concatenate
    지정되었다 ( tar 아카이브(archive) 형식의) 파일을 tar 어카이브(archive)의 말미 에 추가합니다 (추가하기 전의 낡은 end-of-archive 블록은 삭제함 ). 이것은, 지정된 파일이 아카이브(archive)안의 1 파일이 되므로 (은)는 없고, 지정한 파일안에 포함되어 있는 파일을, 최초로 지정 한 아카이브(archive)에 추가한다고 하는 효과를 가집니다. 주: 이 옵션은 tarfile (을)를 재기입할 필요가 있기 (위해)때문에,1/4 인치 카트리지 테이프에서는 동작하지 않습니다.
-c
--create
    새로운 아카이브(archive)를 작성해 (혹은 낡은 내용을 잘라 버려), 지정 된 파일을 아카이브(archive)에 기입합니다.
-d
--diff
--compare
    아카이브(archive)안의 파일과 거기에 상당하는 파일 시스템내의 파일과의 차이를 조사합니다.
--delete
    지정된 파일을 아카이브(archive)로부터 삭제합니다 (1/4 인치 테이프에서는 동작하지 않습니다).
-r
--append
    아카이브(archive)의 말미에 파일을 추가합니다 (1/4 인치 테이프에서는 동작하지 않습니다).
-t
--list
    아카이브(archive) 내용의 리스트 표시를 합니다. 만약 인수로서 filename 하지만 지정되어 있으면, 그 파일만이 리스트 표시됩니다. 그렇지 않으면, 아카이브(archive)에 포함되는 모든 파일 리스트가 표시됩니다.
-u
--update
    지정한 파일 가운데, 아카이브(archive)내의 파일보다 디스크상의 파일의 변경 시각이 새로운 것만을 추가합니다. 1/4 인치 테이프 그럼 동작하지 않습니다.
-x
--extract
--get
    아카이브(archive)로부터 파일을 추출합니다. 가능하면, 소유자, 변경 시각, 파일 속성은 restore 됩니다. 만약 file 인수가 지정되어 있지 않으면, 아카이브(archive)내의 전파일이 추출됩니다. 만약 filename 인수가 테이프상의 디렉토리명에 매치 하고 있으면, 그 디렉토리와 디렉토리내의 파일이 추출됩니다 (디렉토리내의 모든 디렉토리에 대해서도와 같이 추출됩니다). 만약 아카이브(archive)내에, 상당하는 같은 파일이 복수 포함되어 있으면 (상기의 --append 명령을 참조), 마지막에 포함되어 있는 것이 다른 모든 파일을 덧쓰기하는 형태로 추출됩니다.

옵션
tar 외 옵션은, 조합해 사용할 수가 있습니다. 1 캐릭터 옵션은, 명령 단어 중(안)에서 지정할 수가 있습니다. 인수를 주어야 할 옵션의 경우, 옵션에 이어 인수를 지정해 사용합니다 (이하의 사용예 (을)를 참조해 주세요).

--help
    tar 의 모든 명령 옵션에 대해 일람과 해설을 표시합니다.
--atime-preserve
    테이프에 쓰여져 있는, 파일의 액세스 시각을 restore 합니다. (inode 의 변경 시각이 변경되는 것에 주의해 주세요! )
-b
--block-size number
    읽고 쓰기하는 블록 사이즈를 number * 512-byte 블록으로 설정합니다.
-B
--read-full-blocks
    짧은 읽어내 블록을, 완전한 블록에 재조립합니다 ( 4.2BSD 파이프의 읽기용).
-C directory
--directory directory
    나머지의 인수를 처리하기 전에 directory 에 이동합니다.
--checkpoint
    아카이브(archive)를 읽고 쓰기하는 동안에 읽고 쓰기한 버퍼의 수를 표시합니다.
-f  [hostname:]file
--file
    [hostname:]file 지정되었다 file (디폴트는 /dev/sa0) (을)를 읽고 쓰기합니다. 만약 hostname 하지만 지정되어 있으면, tar 하 rmt(8) (을)를 사용해, 리모트 머신상의 file (을)를 읽고 쓰기합니다. “-” (은)는 파일명으로서 사용되는 일도 있습니다만, 이것은 표준 입력으로부터 읽어내거나 표준 출력에 써내거나 하기 위해서 사용됩니다.
--force-local
    코론이 있을 때조차, archive파일은 로컬의 것으로 합니다.
-F file
--info-script file
--new-volume-script file
    각각의 아카이브(archive)가 끝나면(자), 스크립트를 실행합니다 (암묵의 -M 지정이 행해집니다).
--fast-read
    와일드 카드로 지정되어 있지 않은 모든 추출 타겟이 아카이브(archive)내에 발견되면, 그 시점에서 종료합니다.
-G
--incremental
    낡은 GNU-format 인크리멘타르박크압파일을 작성/리스트/추출합니다.
-g file
--listed-incremental file
    새로운 GNU-format 인크리멘타르박크압파일을 작성/리스트/추출합니다.
-h
--dereference
    기호 연결을 상징적인 채 기입하지 않습니다. 기호 연결이 가리키고 있는 데이터를 기입합니다.
-i
--ignore-zeros
    아카이브(archive)안의 제로 블록 (통상, End-Of-File 을 의미한다)을 무시합니다.
--ignore-failed-read
    파일을 읽을 수 없어도, 비 0 의 스테이터스로 exit 하지 않습니다.
-j
-y
--bzip
--bzip2
--bunzip2
    아카이브(archive)를 bzip2(1) 그리고 필터링 합니다.
-k
--keep-old-files
    디스크상에 이미 있는 파일을 보관 유지합니다. 즉, 아카이브(archive)로부터 추출하는 파일은, 디스크상의 파일에 덧쓰기하지 않습니다.
-K file
--starting-file file
    아카이브(archive)안의 file (으)로부터 (추출, 리스트 등을) 시작합니다.
-l
--one-file-system
    어느 파일 시스템내에 있는 파일만으로 아카이브(archive)를 작성합니다 (타파일 시스템에의 마운트 포인트를 넘지 않습니다).
-L number
--tape-length number
    number * 1024 바이트 기입한 다음에 테이프의 교환을 요구합니다.
-m
--modification-time
    파일의 변경 시각을 추출하지 않습니다.
-M
--multi-volume
    멀티 볼륨 아카이브(archive)를 작성/리스트/추출합니다.
-n
--norecurse
    작성시에 재귀적으로 서브 디렉토리를 주사 하지 않습니다.
--volno-file file
    볼륨 번호 첨부의 파일명입니다.
-N date
--after-date date
--newer date
    작성 시간이 date 보다 새로운 파일만을 추출합니다.
--newer-mtime date
    변경 시간이 date 보다 새로운 파일만을 추출합니다.
-o
--old-archive
--portability
    POSIX 포맷이 아니고, V7 포맷의 아카이브(archive)를 작성합니다.
-O
--to-stdout
    파일을 표준 출력에 추출합니다.
-p
--same-permissions
--preserve-permissions
    보호 정보를 완전하게 추출합니다.
--preserve
    -p -s 의 지정과 같은 효과를 가집니다.
-P
--absolute-paths
    파일명으로부터 선두의 ‘/’ (을)를 취하지 않습니다.
-R
--record-number
    메세지중에 아카이브(archive)내의 레코드 번호를 묻어 표시합니다.
--remove-files
    아카이브(archive)에 추가한 파일을, 추가 후에 삭제합니다.
-s
--same-order
--preserve-order
    아카이브(archive)내로부터 추출하는 파일을, 지정된 순서대로 합니다.
--show-omitted-dirs
    아카이브(archive) 작성중에 제외된 디렉토리를 표시합니다.
-S
--sparse
    “드문드문한” 파일을 효율적으로 취급하도록(듯이) 합니다.
-T file
-I file
--files-from file
    file (으)로부터 추출 혹은 작성하는 파일명을 얻습니다 (1 행 1 파일명).
--null
    null 로 끝나 있는 이름을 고려해, -T 의 행동을 변경합니다. 이것은 -C 지정을 무효로 합니다.
--totals
    --create 에 의해 쓰여진 총바이트수를 표시합니다.
-U
--unlink
--unlink-first
    파일을 작성하기 전에, 일단 삭제합니다.
-v
--verbose
    --create 그리고 아카이브(archive)에 쓰는 파일이나 --extract 그리고 아카이브(archive)로부터 꺼내는 파일명을 리스트 표시합니다. 파일의 보호 정보를 파일명과 함께 표시시키려면 , --list (을)를 사용합니다.
-V volume-name
--label volume-name
    지정되었다 volume-name (을)를 가진 아카이브(archive)를 작성합니다.
--version
    tar 프로그램의 버젼 번호를 표시합니다.
-w
--interactive
--confirmation
    모든 동작에 대해서, 확인을 요구하게 됩니다.
-W
--verify
    아카이브(archive)를 기입한 후, 베리파이를 시도합니다.
--exclude pattern
    pattern 에 매치 하는 파일을 제외합니다 (추출하지 않습니다. 추가하지 않습니다. 리스트 표시하지 않습니다).
-X file
--exclude-from file
    file 에 일람 되고 있는 파일을 제외합니다.
-Z
--compress
--uncompress
    아카이브(archive)를 compress(1) 그리고 필터링 합니다.
-z
--gzip
--gunzip
    아카이브(archive)를 gzip(1) 그리고 필터링 합니다.
--use-compress-program program
    아카이브(archive)를 program 그리고 필터링 합니다 (이것은, -d 하지만 지정되었을 때는 “decompress” (을)를 의미하지 않으면 안됩니다).
--block-compress
    테이프 혹은 플로피를 위해서(때문에), 압축 프로그램의 출력을 블록 화합니다 (그렇게 하지 않으면 블록장이 이상해져, 디바이스 드라이버는 그 블록을 거절하겠지요).
-   [0-7] [lmh] 테이프 드라이브와 밀도를 지정합니다.

환경
환경 변수 TAR_OPTIONS 에 tar 의 디폴트 옵션을 보관 유지시키는 것이 가능합니다. 이러한 옵션은 최초로 해석되기 때문에, 명시적인 명령행 파라미터로 덧쓰기 가능합니다.

사용예
bert (와)과 ernie 그렇다고 하는 파일을 포함한, 블록 사이즈가 20 블록의 아카이브(archive)를, 테이프 드라이브 /dev/sa0 에 만들려면 ,
    tar cfb /dev/sa0 20 bert ernie
혹은
    tar --create --file /dev/sa0 --block-size 20 bert ernie
(이)라고 입력합니다. -f 및 -b 플래그는 양쪽 모두 인수를 필요로 하고 있는 것에 주의해 주세요. 이 인수는, 명령 단어에 쓰여져 있는 것과 같은 순서로 커멘드 라인으로부터 취득됩니다.

/dev/sa0 (은)는 디폴트의 디바이스이며, 20 은 디폴트의 블록 사이즈이므로, 상기의 예는 다음과 같이 단순화 할 수 있습니다.
    tar c bert ernie
"backup.tar" 라고 하는 아카이브(archive)로부터, 모든 C 소스 및 헤더를 추출하려면 , 다음과 같이 타이프 칩니다.

    tar xf backup.tar '*. [ch]'

쉘이 커런트 디렉토리내의 파일명에 전개하지 않게, 패턴을 쿼트 해야 하는 것에 주의해 주세요 (당연, 쉘은 아카이브(archive)내의 파일 일람에 액세스 할 수 없습니다).

파일을 계층 구조마다 카피하려면 , 이와 같이 명령을 사용해 주세요:

    tar cf - -C srcdir .  | tar xpf - -C destdir

디스켓에, gzip(1) (을)를 사용한 압축 아카이브(archive)를 작성하려면 , 다음의 같은 명령행을 사용하면 좋을 것입니다.
    tar --block-compress -z -c -v -f /dev/fd1a -b 36 tar/

통계 지정 플래그와 -- 스타일의 플래그를 혼재시킬 수가 없다 일로 주의해 주세요. 다음과 같이 타이프 치지 않으면 안 되는 것으로 (은)는 없고, 상기와 같은 쓰는 법으로 1 캐릭터 플래그를 사용할 수가 있습니다.
    tar --block-compress --gzip --verbose --file /dev/fd1a --block-size 20 tar/

위와 같게 해 작성한 디스크의 내용은, 다음과 같이 하면 리스트 표시할 수 있습니다.

    tar tvfbz /dev/fd1a 36

2 개(살)의 tar 아카이브(archive)를 1 개의 어카이브(archive)에 정리하려면 ,
    tar Af archive1.tar archive2.tar
(을)를 사용합니다. 이렇게 하면(자), archive2.tar 에 포함되어 있는 파일이 archive1.tar 의 말미에 추가됩니다 (단순하게
    cat archive2.tar >> archive1.tar
(와)과 타이프 쳐도 잘 되지 않는 것에 주의해 주세요. 왜냐하면, tar 아카이브(archive)의 말미에는 end-of-file 블록이 있기 때문입니다).

srcdir 디렉토리로부터 1997 년 2 월 9 일 13:00 이후로 변경을 하셨다 모든 파일을 아카이브(archive) 하기 위해서는, 이하의 형식을 사용해 주세요.
    tar -c -f backup.tar --newer-mtime 'Feb 9 13:15 1997' srcdir/

다른 시간 지정 형식으로서는, ‘02/09/97 13:15’, ‘1997-02-09 13:15’, ‘13:15 9 Feb 1997’, ‘'9 Feb 1997 13:15’, ‘Feb. 9, 1997 1:15pm’, ‘09-Feb’, ‘3 weeks ago’, ‘May first Sunday’ (이)가 있습니다. 올바른 타임 존을 지정하기 위해서는, ‘13:15 CEST’ (이)나 ‘13:15+200’ (을)를 사용해 주세요.

환경 변수
tar 프로그램은, 이하의 환경 변수를 참조합니다.

POSIXLY_CORRECT
    통상, tar (은)는 파일 지정안에 섞인 플래그를 처리합니다. 이 환경 변수를 설정하면(자), tar (은)는 최초의 플래그 이외의 인수를 찾아낸다 (와)과 그 이후의 인수에 대해서 플래그 처리를 행하지 않는다고 하는, POSIX 사양 에 맞춘 동작을 행하게 됩니다.

SHELL
    인터랙티브 모드에 대해, 서브 쉘의 기동이 요구되었을 때, SHELL 변수가 설정되어 있으면 그것이, 설정되어 있지 않으면 /bin/sh 하지만 사용됩니다.

TAPE
    tar 의 디폴트의 테이프 드라이브를 변경합니다 (이것은, 한층 더 -f 플래그에 의해 변경할 수가 있습니다).

TAR_RSH
    TAR_RSH 환경 변수는, 디폴트 쉘에 우선해, tar 의 데이터 전송에 사용됩니다.

관련 파일

/dev/sa0
    디폴트의 테이프 드라이브

호환성
-y (은)는 FreeBSD 만의 기능입니다. GNU tar 멘테나는, -j (을)를 GNU tar 1.13. 18 이후에 있어서의 공식적인 bzip2(1) 압축 옵션으로서 채용했습니다. -I 옵션은, Solaris 의 tar (와)과의 호환성을 위해서(때문에) 있습니다.

관련 항목
bzip2(1), compress(1), gzip(1), pax(1), rmt(8)

역사
tar 포맷은 훌륭한 역사를 가지고 있어, Sixth Edition UNIX 에 원점이 있습니다. 이 tar 의 실장은 GNU 실장이며, John Gilmore 에 의해 쓰여졌다 퍼블릭 도메인 tar 하지만 바탕으로 되어 있습니다.

저자
-nosplit 다음의 사람을 포함한, 몹시 많은 사람들. [소스안의 ChangeLog 파일에 기술되고 있는 사람들] John Gilmore (오리지날의 퍼블릭 도메인판의 저자), Jay Fenlason (최초의 GNU 저자), Joy Kendall, Jim Kingdon, David J. MacKenzie, Michael I Bushnell, Noah Friedman 그리고 버그 수정이나 추가를 공헌해 준 무수한 사람들.

이 메뉴얼 페이지는 NetBSD 1.0 release 로부터, FreeBSD 그룹이 수중에 넣은 것입니다.

버그
특징적인 -C 옵션의 동작은, 전통적인 tar 프로그램의 그것과는 다르므로, 그다지 의지해에는 할 수 없습니다.

-A 명령로 임의의 수의 tar 아카이브(archive)를 결합할 수 있으면 좋겠습니다만, 그것은 할 수 없습니다. 이것을 하려고 해도, 2 번째 이후의 아카이브(archive)의 end-of-archive 블록이 삭제되지 않고 남아 버립니다.

tar 파일 포맷은 준고정폭필드 포맷이며, 디바이스 번호용의 필드는 16 비트용 (메이저 8 비트로 마이나 8 비트) 에 디자인되고 있어 우리의 32 비트 번호 (메이저 8 비트로 마이나 16+8 비트) (을)를 흡수할 수 없습니다.