ar(1) General Commands Manual ar(1)
ar - archive and library maintainer
ar option [ posname ] archive file ...
The archiver ar maintains groups of files as a single archive file. This utility is generally used to create and update library files that
the link editor uses; however, you can use the archiver for other similar purposes. This version uses a portable ASCII-format archive that
you can use on various machines that run UNIX. If you have an archive that uses an older format, see
This section describes the options and suboptions that you can use with the ar utility. Suboptions must be specified with options. Fol-
lowing is a list and description of the options:
d Deletes the specified files from the archive file.
r Replaces the specified files in the archive file. If you use the suboption u with r, the archiver only replaces those files that
have last-modified dates later than the archive files. If you use a positioning character (from the set abi) you must specify the
posname argument to tell the archiver to put the new files after (a) or before (b or i). Otherwise, the archiver puts new files at
the end of the archive.
q Appends the specified files to the end of the archive file. The archiver does not accept suboption positioning characters with the
q option. It also does not check whether the files you want to add already exist in the archive. Use the q option only to avoid
quadratic behavior when you create a large archive piece by piece.
t Prints a table of contents for the files in the archive file. If you do not specify any filenames, the archiver builds a table of
contents for all files. If you specify filenames, the archiver builds a table of contents only for those files.
p Prints the specified files from the archive.
m Moves the specified files to the end of the archive. If you specify a positioning character, you must also specify the posname (as
in option r) to tell the archiver where to move the files.
x Extracts the specified files from the archive. If you do not specify any filenames, the archiver extracts all files. When it
extracts files, the archiver does not change any file. Normally, the last-modified date for each extracted file shows the date when
someone extracted it; however, when you use o, the archiver resets the last-modified date to the date recorded in the archive.
s Makes a symbol definition (symdef file) as the first file of an archive. This file contains a hash table of ranlib structures and a
corresponding string table. The symdef file's name is based on the byte ordering of the hash table and the byte ordering of the
file's target machine. Files must be consistent in their target byte ordering before the archiver can create a symdef file. If you
change the archive contents, the symdef file becomes obsolete because the archive file's name changes. If you specify s, the
archiver creates the symdef file as its last action before finishing execution. You must specify at least one other archive option
(m, p, q, r, or t) when you use the s option. For UMIPS-V, archives include member objects based on the definition of a common
object only. For UMIPS-BSD, they define the common object, but do not include the object.
v Gives a file-by-file description as the archiver makes a new archive file from an old archive and its constituent files. When you
use this option with t, the archiver lists all information about the files in the archive. When you use this option with p, the
archiver precedes each file with a name.
c Suppresses the normal message that the archiver prints when it creates the specified archive file. Normally, the archiver creates
the specified archiver file when it needs to.
l Places temporary files in the local directory. If the l option is not used then the value of the environment symbol, TMPDIR, is
used as the directory for temporary files. If TMPDIR is not defined or if the directory it references is not writable then /tmp is
The suboptions do these things:
a Specifies that the file goes after the existing file (posname). Use this suboption with the m or r options.
b Specifies that the file goes before the existing file (posname). Use this suboption with the m or r options.
i Specifies that the file goes before the existing file (posname). Use this suboption with the m or r options.
o Forces a newly created file to have the last-modified date that it had before it was extracted from the archive. Use this suboption
with the x option.
u Prevents the archiver from replacing an existing file unless the replacement is newer than the existing file. This option uses the
UNIX system last modified date for this comparison. Use this suboption with the r option.
If you specify the same file twice in an argument list, it can appear twice in the archive file.
The o option does not change the last-modified date of a file unless you own the extracted file or you are the superuser.
This command truncates filenames to 15 characters.
lorder(1), ld(1), odump(1), ranlib(1), ranhash(3x), ar(5), arcv(8)