AR(1)                           User Commands                          AR(1)
NAME
       ar - maintain portable archive or library
SYNOPSIS
       /usr/bin/ar -d [
-Vv] 
archive file...       
/usr/bin/ar -m [
-abiVv] [
posname] 
archive file...       
/usr/bin/ar -p [
-sVv] 
archive [
file]...       
/usr/bin/ar -q [
-csVv] 
archive file...       
/usr/bin/ar -r [
-abciuVv] [
posname] 
archive file...       
/usr/bin/ar -s [
-Vv] 
archive       /usr/bin/ar -t [
-sVv] 
archive [
file]...       
/usr/bin/ar -x [
-CsTVv] 
archive [
file]...       
/usr/xpg4/bin/ar -d [
-Vv] 
archive file...       
/usr/xpg4/bin/ar -m [
-abiVv] [
posname] 
archive file...       
/usr/xpg4/bin/ar -p [
-sVv] 
archive [
file]...       
/usr/xpg4/bin/ar -q [
-cVv] 
archive file...       
/usr/xpg4/bin/ar -r [
-abciuVv] [
posname] 
archive file...       
/usr/xpg4/bin/ar -t [
-sVv] 
archive [
file]...       
/usr/xpg4/bin/ar -x [
-CsTVv] 
archive [
file]...
DESCRIPTION
       The 
ar utility maintains groups of files combined into a single
       archive file. Its main use is to create and update library files.
       However, it can be used for any similar purpose. The magic string and
       the file headers used by 
ar consist of printable 
ASCII characters. If
       an archive is composed of printable files, the entire archive is
       printable.
       When 
ar creates an archive, it creates headers in a format that is
       portable across all machines. The portable archive format and
       structure are described in detail in 
ar.h(3HEAD). The archive symbol
       table described there 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 or accessible to
       the user. Whenever the 
ar command is used to create or update the
       contents of such an archive, the symbol table is rebuilt. The 
-s       option described below forces the symbol table to be rebuilt.
OPTIONS
       The following options are supported:       
-a             Positions new 
files in 
archive after the file named by the             
posname operand.       
-b             Positions new 
files in 
archive before the file named by the             
posname operand.       
-c             Suppresses the diagnostic message that is written to standard
             error by default when 
archive is created.       
-C             Prevents extracted files from replacing like-named files in the
             file system.  This option is useful when 
-T is also used to
             prevent truncated file names from replacing files with the same
             prefix.       
-d             Deletes one or more 
files from 
archive.       
-i             Positions new 
files in 
archive before the file named by the             
posname operand. This option is equivalent to 
-b.       
-m             Moves 
files. If 
-a, 
-b, or 
-i with the 
posname operand are
             specified, the 
-m option moves 
files to the new position.
             Otherwise, 
-m moves 
files to the end of 
archive.       
-p             Prints the contents of 
files in 
archive to standard output. If
             no 
files are specified, the contents of all files in 
archive             are written in the order of the archive.       
-q             Quickly appends 
files to the end of 
archive. Positioning
             options 
-a, 
-b, and 
-i are invalid. The command does not check
             whether the added 
files are already in 
archive. This option is
             useful to avoid quadratic behavior when creating a large
             archive piece-by-piece.       
-r             Replaces or adds 
files in 
archive. If 
archive does not exist, a
             new archive file is created and a diagnostic message is written
             to standard error, unless the 
-c option is specified. If no             
files are specified and the 
archive exists, the results are
             undefined. Files that replace existing files do not change the
             order of the archive. If the 
-u option is used with the 
-r             option, only those files with dates of modification later than
             the archive files are replaced. If the 
-a, 
-b, or 
-i option is
             used, the 
posname argument must be present and specifies that
             new files are to be placed after (
-a) or before (
-b or 
-i)             
posname. Otherwise, the new files are placed at the end.       
-s             Forces the regeneration of the archive symbol table even if 
ar             is not invoked with an option that 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.       
-t             Prints a table of contents of 
archive. The files specified by
             the 
file operands are included in the written list. If no 
file             operands are specified, all files in 
archive are included in
             the order of the archive.       
-T             Allows file name truncation of extracted files whose archive
             names are longer than the file system can support. By default,
             extracting a file with a name that is too long is an error. In
             that case, a diagnostic message is written and the file is not
             extracted.       
-u             Updates older files. When used with the 
-r option, files within             
archive are replaced only if the corresponding 
file has a
             modification time that is at least as new as the modification
             time of the file within 
archive.       
-v             Gives verbose output. When used with options 
-d, 
-r, or 
-x, the             
-v option writes a detailed file-by-file description of the
             archive creation and the constituent 
files, and maintenance
             activity. When used with 
-p, 
-v writes the name of the file to
             the standard output before writing the file itself to the
             standard output. When used with 
-t, 
-v includes a long listing
             of information about the files within the archive. When used
             with 
-x, 
-v prints the filename preceding each extraction. When
             writing to an archive, 
-v writes a message to the standard
             error.       
-V             Prints its version number on standard error.   
/usr/xpg4/bin/ar       The following options are supported for 
/usr/xpg4/bin/ar:       
-v             Same as the 
/usr/bin/ar version, except when writing to an
             archive, no message is written to the standard error.       
-x             Extracts the files named by the 
file operands from 
archive. The
             contents of 
archive are not changed. If no 
file operands are
             given, all files in 
archive are extracted. If the file name of
             a file extracted from 
archive is longer than that supported in
             the directory to which it is being extracted, the results are
             undefined. The modification time of each 
file extracted is set
             to the time 
file is extracted from 
archive.
OPERANDS
       The following operands are supported:       
archive                  A path name of the archive file.       
file                  A path name. Only the last component is used when
                  comparing against the names of files in the archive. If
                  two or more 
file operands have the same last path name
                  component (see 
basename(1)), the results are unspecified.
                  The implementation's archive format will not truncate
                  valid file names of files added to or replaced in the
                  archive.       
posname                  The name of a file in the archive file, used for relative
                  positioning. See options 
-m and 
-r.
ENVIRONMENT VARIABLES
       See 
environ(7) for descriptions of the following environment
       variables that affect the execution of 
ar: 
LANG, 
LC_ALL, 
LC_CTYPE,       
LC_MESSAGES, 
LC_TIME, and 
NLSPATH.       
TMPDIR                 Determine the pathname that overrides the default directory
                 for temporary files, if any.       
TZ                 Determine the timezone used to calculate date and time
                 strings written by 
ar -tv. If 
TZ is unset or null, an
                 unspecified default timezone is used.
EXIT STATUS
       The following exit values are returned:       
0             Successful completion.       
>0             An error occurred.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:   
/usr/bin/ar       +--------------------+-----------------+
       |  ATTRIBUTE TYPE    | ATTRIBUTE VALUE |
       +--------------------+-----------------+
       |Interface Stability | Committed       |
       +--------------------+-----------------+   
/usr/xpg4/bin/ar       +--------------------+-------------------+
       |  ATTRIBUTE TYPE    |  ATTRIBUTE VALUE  |
       +--------------------+-------------------+
       |Interface Stability | Committed         |
       +--------------------+-------------------+
       |Standard            | See 
standards(7). |
       +--------------------+-------------------+
SEE ALSO
       basename(1), 
cpio(1), 
ld(1), 
lorder(1), 
strip(1), 
tar(1),       
ar.h(3HEAD), 
a.out(5), 
attributes(7), 
environ(7), 
standards(7)NOTES
       If the same file is mentioned twice in an argument list, it may be
       put in the archive twice.
       By convention, archives are suffixed with "
.a".
       When inserting 
ELF objects into an archive file, 
ar might add "
\n"
       characters to pad these objects to an 8-byte boundary. Such padding
       improves the efficiency with which 
ld(1) can access the archive. Only       
ELF object files are padded in this way. Other archive members are
       not altered. When an object with such padding is extracted from an
       archive, the padding is not included in the resulting output.
                              January 23, 2022                         AR(1)