ar(1)

명칭
ar - 아카이브(archive)의 작성, 갱신, 및, 어카이브(archive)로부터의 추출

서식
ar [-] {dmpqrtx}[abcfilNoPsSuvV] [membername ] [count ] archive files . . .

해설
GNU ar 프로그램은, 아카이브(archive)의 작성, 갱신, 및, 어카이브(archive)로부터의 추출을 행합니다. 아카이브(archive) (이)란, 오리지날의 파일 (아카이브(archive)의 멤버 (이)라고 부릅니다)를 복원할 수 있는 것 같은 구조로, 다른 파일군의 집합을 보관 유지한다 같은 하나의 파일입니다. 원래의 파일의 내용, 모드 (퍼미션), 타임 스탬프, 소유자, 그룹의 정보는 아카이브(archive)내에서도 보존되어 파일 추출시에는 복원 됩니다. GNU ar 그럼, 멤버 파일의 파일명의 길이에는 제한은 없습니다만, 시스템 의 설정에 따라서는 (다른 툴로 관리되는 archive파일의 형식과의 호환성을 위해서(때문에)) 멤버 파일의 파일명의 길이에 제한이 있는 경우가 있습니다. 제한이 있는 경우는, 많은 경우 15 캐릭터 (a.out 관련의 파일 형식이 대표적)인가, 16 캐릭터 (coff 관련의 파일 형식이 대표적)에 제한됩니다. 이 종류의 아카이브(archive)는, 공유의 써브루틴을 보관 유지하는 프로그램 라이브러리로서 이용되는 것이 많기 때문에, ar (은)는 바이너리 유틸리티라고 생각됩니다. `s '수식자를 지정했을 경우, ar (은)는 아카이브(archive)내의 리로케이터블 오브젝트로 정의된 심볼 의 인덱스를 작성합니다. 한 번 작성된 인덱스는, ar 하지만 아카이브(archive)의 내용을 변경할 경우에는 반드시 갱신됩니다 (다만 `q '옵션지정시는 갱신되지 않습니다). 이러한 인덱스를 가진다 아카이브(archive)를 이용하는 것에 의해, 프로그램 라이브러리의 링크가 고속화되거나 프로그램 라이브러리내의 routine가 아카이브(archive)내의 배치에 관계없이, 서로를 호출한다 일이 생기게 됩니다. `nm -s '또는 `nm --print-armap '에 의해, 이 인덱스 테이블을 표시할 수가 있습니다. 만약, 아카이브(archive)에 인덱스 테이블이 포함되지 않은 경우는, ranlib (으)로 불리는, 하나 더의 형식의 ar (을)를 이용해 테이블만을 추가할 수가 있습니다. ar (을)를 실행할 때는, 적어도 두 개의 인수를 지정할 필요가 있습니다. 오퍼레이션 (동작)(을)를 지정하는 하나의 키 캐릭터와 처리하는 아카이브(archive)명입니다 (키 캐릭터에는 수식자 (으)로서 복수의 문자를 적을 수도 있습니다). 대부분의 오퍼레이션은, 처리하는 개개의 파일명을 지정하기 위한 files 인수를 받아들입니다.

옵션
GNU ar (은)는 최초의 명령행 옵션으로서 오퍼레이션 코드 p 라고 수식자 mod (을)를 임의의 순서로 조합한 것을 받아들입니다. 최초의 옵션의 선두에 데쉬(하이픈)를 붙일 수도 있습니다. 키 캐릭터 p (은)는, 어느 오퍼레이션을 실행하는지를 지정합니다. 키 캐릭터로서는 이하의 어느쪽이든 하나만을 지정할 수가 있습니다.

d   아카이브(archive)로부터 모듈을 삭제 합니다. 삭제하는 모듈명을 files (으)로서 지정해 주세요. 파일명을 지정하지 않으면 아카이브(archive)는 변경되지 않습니다. `v '수식자를 지정했을 때에는, ar (은)는 삭제할 때에 그 모듈명을 표시합니다.

m   멤버를 아카이브(archive)내에서 이동합니다. 어느 심볼이 복수의 멤버로 정의되고 있는 경우는, 아카이브(archive)내에서의 멤버의 순서에 의해, 프로그램이 프로그램 라이브러리를 링크 한 결과가 다른 것이 있습니다. m 에 수식자가 지정되지 않았던 경우는 files 인수로 지정한 멤버는 아카이브(archive)의 최후 에 이동됩니다. `a ', `b ', 또는 `i '수식자를 지정하는 것에 의해, 수식자에 응한 장소로 이동합니다.

p   아카이브(archive)내의 지정된 멤버를 표준 출력에 출력 합니다. `v '수식자가 지정되었을 때는, 멤버의 내용을 출력하기 전에 멤버명을 출력 합니다. files (을)를 지정하지 않으면, 아카이브(archive)내의 모든 파일이 출력됩니다.

q   퀵 append . files 그리고 지정된 파일을, 중복을 체크하지 않고 아카이브(archive) 의 말미에 추가합니다. `a ', `b ', `i '수식자는 이 오퍼레이션에는 영향을 주지 않습니다 . 새로운 멤버는 항상 아카이브(archive)의 말미에 놓여집니다. `v '수식자를 지정하면(자), ar (은)는 추가 시에 그 파일명을 출력합니다. 이 오퍼레이션의 특징은 동작 속도이므로, 비록 심볼 테이블의 인덱스가 존재했다고 해도, 그것을 갱신하지 않습니다. 심볼 테이블의 인덱스를 갱신하려면 , 명시적으로 `ar s '인가 ranlib (을)를 사용해 주세요. 그렇지만, 많은 다른 시스템에 대해 퀵 append가 인덱스를 재구축 하는 것이 가정되고 있기 때문에, GNU ar (은)는 `q '는 `r '와 같은 동작을 하도록(듯이) 실장하고 있습니다.

r   files(을)를 아카이브(archive)에 삽입 (중복때는 치환 ) 합니다. 이 오퍼레이션은 `q '과는 달리, 추가하는 파일과 동명의 멤버가 벌써 존재한다 경우는 삭제됩니다. 만약 files 그리고 지정한 파일안에 존재하지 않는 것이 하나에서도 포함되어 있는 경우는 ar (은)는 에러 메세지를 출력해, 그 파일명과 동명의 멤버는 변경 되지 않고 보존됩니다. 디폴트에서는 새로운 멤버는 파일의 말미에 추가됩니다만, `a ', `b ', 또는 `i '수식자를 지정하는 것으로써, 기존의 멤버에 대한 상대적인 위치 관계를 지정할 수가 있습니다. 이 오퍼레이션에 `v '수식자를 지정하면(자), 삽입된 각 파일에 대해서, 파일이 추가 되었다 (삭제된 낡은 멤버가 없다)인가, 치환되었는지를 나타내는 `a '또는 `r '의 어느 쪽인지를 포함한 일행이 출력됩니다.

t   아카이브(archive) 의 내용, 또는 files 에 열거된 파일 가운데, 아카이브(archive)내에 존재하는 것의 일람을 출력 합니다. 통상은 멤버명만을 표시합니다만, `v '수식자를 지정하는 것으로써, 모드 (퍼미션), 타임 스탬프, 소유자, 그룹, 사이즈도 표시합니다. files 의 지정이 없는 경우는 아카이브(archive)내의 모든 파일의 일람을 표시합니다. 어느 아카이브(archive) (`b.a '로 합니다)의 안에 같은 이름 (`fie '로 합니다)의 복수의 파일이 존재하는 경우는, `ar t b.a fie '는 최초의 파일만을 표시합니다. 동명의 파일을 모두 보고 싶은 경우 (은)는 모든 파일의 일람을 표시해 주세요. 이 예에서는 `ar t b.a '입니다.

x   아카이브(archive)로부터 files 그리고 지정된 멤버를 추출 합니다. `v '수식자를 지정하면(자), ar (은)는 추출 시에 그 파일명을 출력합니다. files 의 지정이 없는 경우는 아카이브(archive)내의 모든 파일을 추출합니다.

몇개의 수식자 (mod )(을)를 키 캐릭터 p 의 직후에 붙이는 것에 의해, 오퍼레이션의 동작을 변경한다 일이 생깁니다.

a   새로운 파일을 기존의 멤버의 후 에 추가합니다. a 수식자를 이용할 때는, archive 인수의 전에 membername 인수로서 기존의 멤버명을 지정할 필요가 있습니다.

b   새로운 파일을 기존의 멤버의 전 에 추가합니다. b 수식자를 이용할 때는, archive 인수의 전에 membername 인수로서 기존의 멤버의 이름을 지정할 필요가 있습니다. (`i '와 같다. )

c   아카이브(archive)를 작성 합니다. 존재하지 않는 아카이브(archive) (을)를 갱신하도록(듯이) 지정했을 경우, 그 아카이브(archive)는 반드시 작성됩니다만, 그 때, 이 수식자를 지정하는 것에 의해, 아카이브(archive)를 작성하는 것을 명시하고 있지 않으면, 경고를 출력합니다.

f   아카이브(archive)내의 이름을 절약합니다. 통상 ar (은)는 임의의 길이의 파일명을 받아들입니다만, 이 때문에, 몇개의 시스템 그리고 사용되고 있는 종래의 ar (와)과 호환성이 없는 아카이브(archive)가 작성되게 됩니다. 이것이 문제가 된다 경우는, f 수식자를 지정해, 파일을 아카이브(archive)에 추가할 때에 그 파일명을 절약할 수가 있습니다.

i   새로운 파일을 기존의 멤버의 전 에 삽입합니다. i 수식자를 이용할 때는, archive 인수의 전에 membername 인수로서 기존의 멤버명을 지정할 필요가 있습니다. (`b '와 같다. )

l   이 수식자는 지정 가능합니다만, 사용되지 않습니다.

N   count 파라미터를 사용합니다. 아카이브(archive)에 동일명의 엔트리가 다수 있는 경우, 이것이 사용됩니다. 지정한 이름의 인스턴스 count (을)를, 아카이브(archive)로부터 추출 또는 삭제합니다.

o   멤버를 추출할 때에 오리지날 의 시각을 보존합니다. 이 수식자를 지정하지 않으면 아카이브(archive)로부터 추출 된 파일의 타임 스탬프는 추출시의 시각이 됩니다.

P   아카이브(archive)중의 이름과 매칭을 취할 때, 풀 패스명을 사용합니다. ar (은)는 풀 패스명의 아카이브(archive) (이러한 어카이브(archive)는 POSIX 준거가 아닙니다) (을)를 작성할 수 없습니다만, 다른 아카이브(archive) 작성기는 가능합니다. 이 옵션을 사용하면(자), ar (은)는 완전한 패스명을 사용해 파일명의 매칭을 실시합니다. 다른 툴로 작성한 아카이브(archive)로부터 1 개의 파일을 꺼내는 경우에 유용하겠지요.

s   아카이브(archive)에 다른 변경이 없는 경우에서도, 어카이브(archive)에 오브젝트 파일의 인덱스를 기입하거나 기존의 인덱스를 갱신합니다. 이 수식자 (은)는 다른 오퍼레이션과 병용 하는 일도, 단독으로 사용하는 일도 가능합니다. 어느 아카이브(archive)에 대해서 `ar s '를 실행하는 것은, 그 아카이브(archive)에 대해서 `ranlib '를 실행하는 것으로 등가입니다.

S   아카이브(archive)의 심볼 테이블을 작성하지 않습니다. 이것을 이용하면(자) 큰 프로그램 라이브러리를 몇회인가로 나누어 작성할 때에 시간을 단축할 수가 있습니다. 이 결과 얻을 수 있는 아카이브(archive)는 링커로 사용할 수 없습니다. 심볼 테이블을 작성하기 위해서는 마지막에 `ar '를 실행할 때에 `S '수식자를 제외하는지, 그 아카이브(archive)에 대해서 `ranlib '를 실행할 필요가 있습니다.

u   통상 ar r . . . (은)는 열거된 파일을 모두 아카이브(archive)에 삽입합니다. 이 수식자를 지정하면(자), 지정한 파일이 기존의 동명의 멤버보다 새로운 경우 마셔 파일을 삽입합니다. `u '수식자는 `r '(치환) 오퍼레이션인 만큼 붙일 수가 있습니다. 특히, 타임 스탬프의 확인은 `q '오퍼레이션의 이점인 속도를 저하시키므로, `qu '의 편성은 인정되지 않습니다.

v   오퍼레이션에 대해서 장황 표시를 요구합니다. 많은 오퍼레이션에 대해 `v '수식자가 지정되면(자), 처리된 파일명등의 부가적인 정보가 표시됩니다.

V   이 수식자는 ar 의 버젼 번호를 표시합니다.

관련 항목
info의 `binutils' 의 항; The GNU Binary Utilities, Roland H. Pesch (October 1991). nm(1) , ranlib(1) .

COPYING
Copyright (c) 1991, 1992, 1993, 1995, 1998, 1999, 2000 Free Software Foundation, Inc. This document is distributed under the terms of the GNU Free Documentation License, version 1.1. That license is described in the sources for this manual page, but it is not displayed here in order to make this manual more consise. Copies of this license can also be obtained from: http://www.gnu.org/copyleft/.