ar(1)

NOMBRE
ar - crea, modifica y extrae de archivos

SINOPSIS
ar [-] {dmpqrtx}[abcilosSuvV] [nombre_miembro ] archivo ficheros ...

DESCRIPCIÓN
El programa de GNU ar crea, modifica, y extrae de archivos. Un archivo es un simple fichero que contiene un conjunto de otros ficheros en una estructura que hace posible recuperar los ficheros individuales originales (llamados miembros del archivo).

El contenido de los ficheros originales, modos (permisos), tiempos, propietario y grupo se mantienen en el archivo, y se pueden reconstituir en la extracción.

El programa ar de GNU puede mantener ficheros cuyos miembros tengan nombres de cualquier longitud; sin embargo, dependiendo de cómo se configure ar en su sistema, se puede imponer un límite a la longitud de los nombres de los miembros (para compatibilizar con formatos de archivo mantenidos por otras herramientas). Si existe, el límite es frecuentemente 15 caracteres (típico de formatos referidos a a.out) ó 16 caracteres (típico de formatos relacionados con COFF).

ar se considera una utilidad binaria porque los archivos de esta forma son usados con más frecuencia como bibliotecas que contienen las subrutinas necesarias.

ar creará un índice hacia los símbolos definidos en los módulos objetos reubicables del archivo cuando especifique el modificador `s '. Una vez creado, este índice se actualiza en el archivo cuando ar efectúa un cambio en sus contenidos (guardados para la operación de actualización `q '). Un archivo con tal índice acelera el enlace para la biblioteca, y permite que las rutinas de la biblioteca se llamen unas a otras sin importar su situación en el archivo.

Puede usar `nm -s ' o `nm --print-armap ' para obtener una lista de estas tablas de índices. Si un archivo carece de la tabla, se puede emplear otra forma de ar llamada ranlib para añadir la tabla.

ar insiste en recibir al menos dos argumentos para ejecutarse: uno, la letra que especifica la operación (opcionalmente acompañada por otras letras que especifican los modificadores ), y el nombre del archivo sobre el que actuar.

Muchas operaciones pueden también aceptar más argumentos fichero que especifican ficheros particulares para operar.

OPCIONES
El programa ar de GNU le permite mezclar el código de operación p y opciones modificadoras mod en cualquier orden, con el primer argumento de la línea de mandatos.

Si quiere, puede comenzar el primer argumento de la línea de órdenes con un signo menos.

La letra p especifica qué operación ejecutar; puede ser cualquiera de las siguientes, pero debe especificar sólo una de ellas:

d   Borra (delete) módulos del archivo. Especifica los nombres que serán eliminados como ficheros ; el archivo permanece intacto si no especifica ficheros para borrar.

    Si especifica el modificador `v ', ar mostrará cada módulo que se borre.

m   Use esta operación para mover miembros de un archivo.

    La ordenación de los miembros de un archivo puede originar diferencias en cómo los programas se enlazan al usar la biblioteca, si un símbolo está definido en más de un miembro.

    Si no se usan modificadores con m , cualquier miembro que nombre en los argumentos ficheros se mueven al final del archivo; puede usar los modificadores `a ', `b ', o `i ' para moverlos a las posiciones especificadas.

p   Muestra (print) el miembro especificado del archivo en el fichero de salida estándar. Si se especifica el modificador, `v ' muestra el nombre del miembro antes de copiarlo a la salida estándar.

    Si no especifica ficheros , se imprimen todos los ficheros del archivo.

q   Añadido rápido (quick append) ; añade ficheros al final del archivo , sin comprobar posibles sustituciones.

    Los modificadores `a ', `b ', e `i ' , no afectan a esta operación; los nuevos miembros siempre se sitúan al final del archivo.

    El modificador `v ' hace que ar liste cada fichero que es añada.

    Como el objetivo de esta operación es la velocidad, la tabla índice de símbolos del archivo no se actualiza, incluso si existe; puede usar `ar s ' o ranlib explícitamente para actualizar el índice de la tabla de símbolos.

    Sin embargo, demasiados sistemas diferentes suponen que el añadido rápido reconstruye el índice, por lo que ar de GNU implementa `q ' como un sinónimo de `r '.

r   Inserta ficheros en un archivo (con sustitución ). Esta operación difiere de `q ' en que cualesquiera miembros existentes se borran si sus nombres coinciden con los que son añadidos.

    Si uno de los ficheros nombrados en ficheros no existe, ar muesta un mensaje de error, y deja intacto cualquier miembro que exista coincidiendo con ese nombre.

    Por omisión, los nuevos miembros se añaden al final del fichero; pero puede usar alguno de los modificadores `a ', `b ', o `i ' para requerir una ubicación relativa a algún miembro existente.

    El modificador `v ' utilizado con esta operación genera una línea de salida por cada fichero insertado, con una de estas letras `a ' o `r ' para indicar si el fichero fue añadido (no antiguos miembros borrados) o sustituido.

t   Muestra una tabla que lista el contenido del archivo , o aquellos ficheros listados en ficheros que estén presentes en el archivo. Normalmente sólo se muestra el nombre del miembro; si también quiere ver los modos (permisos), tiempos, propietario, grupo y tamaño, puede pedirlo también especificando el modificador `v
     ' .

    Si no especifica ningún fichero , se listan todos los ficheros del archivo.

    Si hay más de un fichero con el mismo nombre (digamos, `fie ') en un archivo (digamos `b.a '), `ar t b.a fie ' sólo listará la primera aparición; para verlos todos, tiene que solicitar un listado completo: en nuestro ejemplo, `ar t b.a '.

x   Extrae miembros (llamados ficheros ) del archivo. Puede usar el modificador `v ' con esta operación, para solicitar que ar liste cada nombre mientras lo extrae.

    Si no especifica ningún fichero , se extraen todos los ficheros de este archivo.

Un número de modificadores (mod ) puede seguir inmediatamente a la letra p para especificar variaciones en el comportamiento de la operación:

a   Añade nuevos ficheros tras un miembro existente del archivo. Si usa el modificador a , tiene que estar presente el nombre de un miembro del archivo como argumento nombre-de-miembro, antes de la especificación de archivo .

b   Añade nuevos ficheros antes de un miembro existente del archivo. Si usa el modificador b , tiene que estar presente el nombre de un miembro del archivo como argumento nombre-de-miembro, antes de la especificación de archivo. (igual que `i ').

c   Crea el archivo. El archivo especificado siempre se crea si no existía, cuando se solicita una actualización. Pero se produce un aviso salvo que especifique previamente que espera crearlo usando este modificador.

f   Trunca los nombres que hay en el archivo. ar normalmente permitirá nombres de ficheros de cualquier longitud. Esto ocasionará que se creen archivos que no son compatibles con el ar nativo de algunos sistemas. Si esto es de interés, el modificador f se puede usar para truncar los nombres de ficheros poniéndolos en el archivo.

i   Inserta nuevos ficheros antes de un miembro existente del archivo. Si usa el modificador i , tiene que estar presente el nombre de un miembro existente del archivo como el argumento

    nombre_de_miembro antes de la especificación del archivo . (igual que `b ').

l   Este modificador se acepta pero no se usa.

o   Preserva las fechas originales de los miembros cuando se extraen. Si no especifica este modificador, los ficheros extraídos del archivo se marcarán con el instante de la extracción.

s   Escribe un índice objeto-fichero en el archivo, o actualiza uno existente, incluso si no se han efectuado cambios en el archivo. Puede usar esta opción modificadora bien con operaciones o bien sola. Ejecutar `ar s ' en un archivo es equivalente a ejecutar `ranlib ' en él.

S   No genera una tabla de símbolos del archivo. Esto puede acelerar la construcción de grandes bibliotecas en varios pasos. El archivo resultante no se puede usar con el enlazador. Para construir una tabla de símbolos, debe de omitir el modificador `S ' en la última ejecución de `ar ', o deberá ejecutar `ranlib ' sobre el archivo.

u   Normalmente, ar r ... inserta todos los ficheros listados en el archivo. Si quisiera insertar sólo aquellos ficheros listados que son más recientes que los miembros existentes del mismo nombre, use este modificador. El modificador `u ' se permite sólo para la operación `r ' (replace, reemplazar). En particular, la combinación `qu ' no se permite, ya que las verificaciones de los tiempos haría perder cualquier ventaja de velocidad de la operación `q '.

v   Este modificador (verbose) solicita la versión prolija de una operación. Muchas operaciones muestran información adicional, tales como nombres de ficheros procesados cuado se añade el modificador `v '.

V   Este modificador muestra el número de versión de ar.

VÉASE TAMBIÉN
La entrada del menú `Binutils' en Info; Las Utilidades de Binarios de GNU, Roland H. Pesch (Octubre de 1991). nm(1) , ranlib(1) .

DERECHOS DE COPIA
Copyright © 1991 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.

N. del T.: Sólo tiene validez legal el aviso de copyright original. En el fichero fuente de esta página de manual puede encontar una traducción.