AR(1) INTERACTIVE UNIX System AR(1)
NAME
ar - archive and library maintainer for portable archives
SYNOPSIS
ar key [keyarg] [posname] afile [name] ...
DESCRIPTION
The ar command maintains groups of files combined into a
single archive file. Its main use is to create and update
library files as used by the link editor. It can be used,
though, for any similar purpose. The magic string and the
file headers used by ar consist of printable ASCII charac-
ters. If an archive is composed of printable files, the
entire archive is printable. Archives of text files created
by ar are portable between implementations of System V.
When ar creates an archive, it creates headers in a format
that is portable across all machines. The portable archive
format and structure is described in detail in ar(4). The
archive symbol table [described in ar(4)] is used by the
link editor [ld(1)] to effect multiple passes over libraries
of object files in an efficient manner. An archive symbol
table is only created and maintained by ar when there is at
least one object file in the archive. The archive symbol
table is in a specially named file that is always the first
file in the archive. This file is never mentioned nor is it
accessible to the user. Whenever the ar(1) command is used
to create or update the contents of such an archive, the
symbol table is rebuilt. The s option, described in the
following text, will force the symbol table to be rebuilt.
Unlike command options, the command key is a required part
of ar's command line. The key (which may begin with a -) is
formed with one of the following letters: drqtpmx. Argu-
ments to the key, alternatively, are made with one or more
of the following set: vuaibcls. Posname is an archive
member name used as a reference point in positioning other
files in the archive. Afile is the archive file. The names
are constituent files in the archive file. The meanings of
the key characters are as follows:
d Delete the named files from the archive file.
r Replace the named files in the archive file. If the
optional character u is used with r, then only those
files with dates of modification later than the archive
files are replaced. If an optional positioning charac-
ter from the set abi is used, then the posname argument
must be present and specify that new files are to be
placed after (a) or before (b or i) posname. Otherwise
new files are placed at the end.
q Quickly append the named files to the end of the
Rev. C Software Development Set Page 1
AR(1) INTERACTIVE UNIX System AR(1)
archive file. Optional positioning characters are
invalid. The command does not check whether the added
members are already in the archive. This option is
useful to avoid quadratic behavior when creating a
large archive piece-by-piece. Unchecked, the file may
grow exponentially up to the second degree.
t Print a table of contents of the archive file. If no
names are given, all files in the archive are tabled.
If names are given, only those files are tabled.
p Print the named files in the archive.
m Move the named files to the end of the archive. If a
positioning character is present, then the posname
argument must be present and, as in r, specify where
the files are to be moved.
x Extract the named files. If no names are given, all
files in the archive are extracted. In neither case
does x alter the archive file.
The meanings of the key arguments are as follows:
v Give a verbose file-by-file description of the making
of a new archive file from the old archive and the con-
stituent files. When used with t, give a long listing
of all information about the files. When used with x,
precede each file with a name.
c Suppress the message that is produced by default when
afile is created.
l Place temporary files in the local (current working)
directory rather than in the default temporary direc-
tory, TMPDIR.
s Force the regeneration of the archive symbol table even
if ar(1) is not invoked with a command which will
modify the archive contents. This command is useful to
restore the archive symbol table after the strip(1)
command has been used on the archive.
FILES
$TMPDIR/* temporary files
$TMPDIR is usually /usr/tmp but can be redefined by setting
the environment variable TMPDIR [see tempnam() in
tmpnam(3S)].
SEE ALSO
ld(1), lorder(1), strip(1), tsort(1), tmpnam(3S), a.out(4),
ar(4).
Rev. C Software Development Set Page 2
AR(1) INTERACTIVE UNIX System AR(1)
NOTES
If the same file is mentioned twice in an argument list, it
may be put in the archive twice.
Rev. C Software Development Set Page 3