from 'man ar':
ar(1) GNU Development Tools ar(1)
NAME
ar - create, modify, and extract from archives.
SYNOPSIS
ar [-]{dmpqrtx}[abcfilNoPsSuvV] [membername] [count] archive files...
DESCRIPTION
The GNU ar program creates, modifies, and extracts from archives. An archive is a single file hold
ing a collection of other files in a structure that makes it possible to retrieve the original indi
vidual files (called members of the archive).
The original files' contents, mode (permissions), timestamp, owner, and group are preserved in the
archive, and may be reconstituted on extraction.
GNU ar can maintain archives whose members have names of any length; however, depending on how ar is
configured on your system, a limit on member-name length may be imposed (for compatibility with
archive formats maintained with other tools). If it exists, the limit is often 15 characters (typi
cal of formats related to a.out) or 16 characters (typical of formats related to coff).
ar is considered a binary utility because archives of this sort are most often used as libraries
holding commonly needed subroutines.
ar will create an index to the symbols defined in relocatable object modules in the archive when you
specify the modifier `s'. Once created, this index is updated in the archive whenever ar makes a
change to its contents (save for the `q' update operation). An archive with such an index speeds up
linking to the library, and allows routines in the library to call each other without regard to their
placement in the archive.
You may use `nm -s' or `nm --print-armap' to list this index table. If an archive lacks the table,
another form of ar called ranlib can be used to add just the table.
ar insists on at least two arguments to execute: one keyletter specifying the operation (optionally
accompanied by other keyletters specifying modifiers), and the archive name to act on.
Most operations can also accept further files arguments, specifying particular files to operate on.