1 .\" Copyright (c) 2007 Joseph Koshy. All rights reserved.
3 .\" Redistribution and use in source and binary forms, with or without
4 .\" modification, are permitted provided that the following conditions
6 .\" 1. Redistributions of source code must retain the above copyright
7 .\" notice, this list of conditions and the following disclaimer.
8 .\" 2. Redistributions in binary form must reproduce the above copyright
9 .\" notice, this list of conditions and the following disclaimer in the
10 .\" documentation and/or other materials provided with the distribution.
12 .\" This software is provided by Joseph Koshy ``as is'' and
13 .\" any express or implied warranties, including, but not limited to, the
14 .\" implied warranties of merchantability and fitness for a particular purpose
15 .\" are disclaimed. in no event shall Joseph Koshy be liable
16 .\" for any direct, indirect, incidental, special, exemplary, or consequential
17 .\" damages (including, but not limited to, procurement of substitute goods
18 .\" or services; loss of use, data, or profits; or business interruption)
19 .\" however caused and on any theory of liability, whether in contract, strict
20 .\" liability, or tort (including negligence or otherwise) arising in any way
21 .\" out of the use of this software, even if advised of the possibility of
45 .Op Fl a Ar position-after
46 .Op Fl b Ar position-before
47 .Op Fl i Ar position-before
62 .Op Fl a Ar position-after
63 .Op Fl b Ar position-before
65 .Op Fl i Ar position-before
98 utility creates and maintains groups of files combined into an
100 Once an archive has been created, new files can be added to it, and
101 existing files can be extracted, deleted or replaced.
103 Files are named in the archive by their last file name component,
104 so if a file referenced by a path containing a
106 is archived, it will be named by the last component of the path.
107 Similarly when matching paths listed on the command line against
108 file names stored in the archive, only the last component of the
109 path will be compared.
113 is for the creation and maintenance of libraries suitable for use
116 although it is not restricted to this purpose.
119 utility can create and manage an archive symbol table (see
121 used to speed up link editing operations.
122 If a symbol table is present in an archive, it will be
123 kept up-to-date by subsequent operations on the archive (excepting
124 the quick update specified by the
130 utility is used to add an archive symbol table
131 to an existing archive.
135 utility supports the following options:
136 .Bl -tag -width indent
137 .It Fl a Ar member-after
138 When used with option
140 this option specifies that the archive members specified by
143 are moved to after the archive member named by argument
145 When used with option
147 this option specifies that the files specified by arguments
149 are added after the archive member named by argument
151 .It Fl b Ar member-before
152 When used with option
154 this option specifies that the archive members specified by
157 are moved to before the archive member named by argument
159 When used with option
161 this option specifies that the files specified by arguments
163 are added before the archive member named by argument
166 Suppress the informational message printed when a new archive is
173 Prevent extracted files from replacing like-named files
176 Delete the members named by arguments
178 from the archive specified by argument
180 The archive's symbol table, if present, is updated to reflect
181 the new contents of the archive.
183 Synonymous with option
185 .It Fl i Ar member-before
186 Synonymous with option
189 Compress the resulting archive with
192 Move archive members specified by arguments
195 If a position has been specified by one of the
200 options, the members are moved to before or after the specified
202 If no position has been specified, the specified members are moved
203 to the end of the archive.
204 If the archive has a symbol table, it is updated to reflect the
205 new contents of the archive.
207 Preserve the original modification times of members when extracting
210 Write the contents of the specified archive members named by
214 If no members were specified, the contents of all the files in the
215 archive are written in the order they appear in the archive.
217 Append the files specified by arguments
219 to the archive specified by argument
221 without checking if the files already exist in the archive and
222 without updating the archive's symbol table.
225 does not already exist, a new archive is created.
226 However, to be compatible with GNU
230 will update the archive's symbol table.
232 Replace (add) the files specified by arguments
234 in the archive specified by argument
236 creating the archive if necessary.
237 Files that replace existing files do not change the order of files
239 If a file named in arguments
241 does not exist, existing members in the archive that match that
242 name are not changed.
243 New files are added to the end of the archive unless one of the
250 The archive symbol table, if it exists, is updated to reflect the
251 new state of the archive.
253 Add an archive symbol table (see
255 to the archive specified by argument
261 option alone is equivalent to invoking
264 List the files specified by arguments
266 in the order in which they appear in the archive, one per line.
267 If no files are specified, all files in the archive are listed.
269 Use only the first fifteen characters of the archive member name or
270 command line file name argument when naming archive members.
272 Conditionally update the archive or extract members.
275 option, files named by arguments
277 will be replaced in the archive if they are newer than their
281 option, the members specified by arguments
283 will be extracted only if they are newer than the corresponding
284 files in the file system.
286 Provide verbose output.
295 gives a file-by-file description of the archive modification being
296 performed, which consists of three white-space seperated fields:
297 the option letter, a dash
304 displays the description as above, but the initial letter is an
306 if the file is added to the archive, or an
308 if the file replaces a file already in the archive.
311 option, the name of the file enclosed in
315 characters is written to standard output preceded by a single newline
316 character and followed by two newline characters.
317 The contents of the named file follow the file name.
322 displays eight whitespace separated fields:
323 the file permissions as displayed by
325 decimal user and group IDs separated by a slash (
327 the file size in bytes, the file modification time in
330 .Dq "%b %e %H:%M %Y" ,
331 and the name of the file.
333 Extract archive members specified by arguments
335 into the current directory.
336 If no members have been specified, extract all members of the archive.
337 If the file corresponding to an extracted member does not exist it
339 If the file corresponding to an extracted member does exist, its owner
340 and group will not be changed while its contents will be overwritten
341 and its permissions will set to that entered in the archive.
342 The file's access and modification time would be that of the time
343 of extraction unless the
345 option was specified.
347 Compress the resulting archive with
351 To create a new archive
353 containing three files
359 .Dl "ar -rc ex.a ex1.o ex2.o ex3.o"
361 To add an archive symbol table to an existing archive
371 .D1 "ar -d ex.a ex1.o"
373 To verbosely list the contents of archive
386 .\" .Sh COMPATIBILITY
388 .\" is expected to be compatible with GNU and SVR4
391 .\" Do the POSIX/SuSv3 standards have anything to say about AR(1)?
395 command first appeared in AT&T UNIX Version 1.
398 .An "Kai Wang" Aq kaiw@FreeBSD.org