El programa GNU ar crea, modifica y extrae archivos. Un archivo es un único archivo que contiene una colección de otros archivos en una estructura que permite recuperar los archivos individuales originales (llamados members del archivo).
Descripción general
El contenido de los archivos originales, el modo (permisos), la marca de tiempo, el propietario y el grupo se conservan en el archivo y se pueden restaurar al extraerlos.
GNU ar puede mantener archivos cuyos miembros tienen nombres de cualquier longitud; sin embargo, dependiendo de cómo ar esté configurado en su sistema, se puede imponer un límite en la longitud del nombre de miembro para la compatibilidad con los formatos de archivo mantenidos con otras herramientas. Si existe, el límite suele ser de 15 caracteres (típico de los formatos relacionados con a.out) o 16 caracteres (típico de los formatos relacionados con coff).
ar se considera una utilidad binaria porque los archivos de este tipo se usan más a menudo como bibliotecas que contienen subrutinas de uso común.
ar crea un índice de los símbolos definidos en módulos de objetos reubicables en el archivo cuando se especifica el modificador s . Una vez creado, este índice se actualiza en el archivo siempre que ar realice un cambio en su contenido (excepto para la operación de actualización q ). Un archivo con un índice de este tipo acelera la creación de enlaces a la biblioteca y permite que las rutinas de la biblioteca se llamen entre sí sin tener en cuenta su ubicación en el archivo.
Puede usar nm -s o nm –print-armap para listar esta tabla de índices. Si un archivo comprimido carece de la tabla, se puede utilizar otra forma de ar llamada ranlib para añadir sólo la tabla.
GNU ar está diseñado para ser compatible con dos instalaciones diferentes. Puede controlar su actividad usando opciones de línea de comandos, como las diferentes variedades de ar en sistemas Unix; o, si especifica la única opción de línea de comandos -M , puede controlarla con un script suministrado mediante una entrada estándar, como el programa MRI «librarian».
Sinopsis
ar [ -X32_64 ] [ – ] p[ mod [ relpos] [ count]]] [ cuenta archive [ member…]
Opciones
GNU ar le permite mezclar el código de operación p y las banderas modificadoras mod en cualquier orden, dentro del primer argumento de la línea de comandos.
Si lo desea, puede comenzar el primer argumento de la línea de comandos con un guión.
La letra clave p especifica qué operación ejecutar; puede ser cualquiera de las siguientes, pero debe especificar sólo una de ellas:
d
Eliminar módulos del archivo. Especifique los nombres de los módulos que desea eliminar como member…; el archivo comprimido no se modificará si no especifica ningún archivo que eliminar.
Si especifica el modificador v , ar lista cada módulo a medida que se elimina.
m
Utilice esta operación para mover miembros en un archivo.
La ordenación de los miembros de un archivo puede marcar la diferencia en la forma en que se enlazan los programas utilizando 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 el memberarguments se mueve al end del archivo comprimido; puede usar los a , , b , o i modificadores para moverlos a un lugar específico.
p
Imprimir los miembros especificados del archivo, al archivo de salida estándar. Si se especifica el modificador v , muestre el nombre del miembro antes de copiar su contenido a la salida estándar.
Si especifica argumentos no member, se imprimen todos los archivos del archivo comprimido.
q
Quick append; Históricamente, añada los archivos member…. al final del archivo archive, sin comprobar si hay reemplazo.
Los modificadores a , b , y i do not afectan a esta operación; los nuevos miembros siempre se colocan al final del archivo.
El modificador v hace que ar enumere cada archivo a medida que se agrega.
Dado que el objetivo de esta operación es la velocidad, el índice de la tabla de símbolos del archivo comprimido no se actualiza, incluso si ya existía; puede utilizar ar s o ranlib explícitamente para actualizar el índice de la tabla de símbolos.
Sin embargo, demasiados sistemas diferentes asumen que un apéndice rápido reconstruye el índice, así que GNU ar implementa «q» como sinónimo de «r».
r
Inserte los archivos member…. en el archivo archive (con replacement). Esta operación difiere de q en que cualquier miembro previamente existente se borra si sus nombres coinciden con los que se están añadiendo.
Si uno de los archivos nombrados en member… no existe, ar muestra un mensaje de error y deja inalterados a todos los miembros existentes del archivo que coincidan con ese nombre.
Por defecto, los nuevos miembros se añaden al final del archivo; pero puede utilizar uno de los modificadores a , b , o i para solicitar la colocación relativa a algún miembro existente.
El modificador v utilizado con esta operación obtiene una línea de salida para cada archivo insertado, junto con una de las letras a o r para indicar si el archivo fue añadido (ningún miembro antiguo fue eliminado) o reemplazado.
t
Mostrar una tabla que enumere el contenido del archivo comprimido , o los de los archivos listados en member…. que están presentes en el archivo comprimido. Normalmente sólo se muestra el nombre del miembro; si también desea ver los modos (permisos), la marca de tiempo, el propietario, el grupo y el tamaño, puede solicitarlo especificando también el modificador v .
Si no especifica un member, se listan todos los archivos en el archivo.
Si hay más de un archivo con el mismo nombre (digamos, fie ) en un archivo comprimido (digamos b.a ), ar t b.a fie lista sólo la primera instancia; para verlos todos, debe pedir una lista completa—en nuestro ejemplo, ar t b.a .
x
Extraer miembros (named member) del archivo. Puede utilizar el modificador v con esta operación, para solicitar que ar indique cada nombre a medida que lo extrae.
Si no especifica un member, se extraen todos los archivos del archivo.
Un número de modificadores ( mod) pueden seguir inmediatamente a la letra clave p, para especificar variaciones en el comportamiento de una operación:
a
Añada nuevos archivos después de un miembro existente del archivo. Si utiliza el modificador a , el nombre de un miembro existente del archivo debe estar presente como el argumento relpos, antes de la especificación archive.
b
Añada nuevos archivos antes que un miembro existente del archivo. Si utiliza el modificador b , el nombre de un miembro existente del archivo debe estar presente como el argumento relpos, antes de la especificación archive. (igual que i ).
c
Crear el archivo. El archivo especificado archive siempre se crea si no existía, cuando se solicita una actualización. Pero se emite un aviso a menos que especifique por adelantado que espera crearlo, usando este modificador.
f
Truncar nombres en el archivo comprimido. GNU ar normalmente permitirá nombres de archivos de cualquier longitud. Esto hará que cree archivos que no son compatibles con el programa nativo ar en algunos sistemas. Si esto es un problema, se puede utilizar el modificador f para truncar los nombres de los archivos al ponerlos en el archivo comprimido.
i
Insertar nuevos archivos antes que un miembro existente del archivo. Si utiliza el modificador i , el nombre de un miembro del archivo existente debe estar presente como relposargument, antes de la especificación archive. (igual que b ).
l
Este modificador es aceptado pero no utilizado.
N
Utiliza el parámetro count. Se utiliza si hay varias entradas en el archivo comprimido con el mismo nombre. Extraer o borrar la instancia count del nombre dado del archivo comprimido.
o
Conservar las fechas originales de los miembros al extraerlas. Si no especifica este modificador, los archivos extraídos del archivo comprimido se sellan con el tiempo de extracción.
P
Utilice el nombre completo de la ruta al hacer coincidir nombres en el archivo comprimido. GNU ar no puede crear un archivo comprimido con un nombre de ruta completo (estos archivos no son quejas POSIX), pero otros creadores de archivos comprimido sí. Esta opción hará que GNU ar coincida con los nombres de los archivos usando un nombre de ruta completo, lo que puede ser conveniente cuando se extrae un solo archivo de un archivo de un archivo creado por otra herramienta.
s
Escriba un índice de archivo de objeto en el archivo comprimido o actualice uno existente, incluso si no se realiza ningún otro cambio en el archivo comprimido. Puede usar este indicador modificador con cualquier operación, o solo. Ejecutar ar s en un archivo comprimido es equivalente a ejecutar ranlib en él.
S
No cree una tabla de símbolos de archivo. Esto puede acelerar la construcción de una biblioteca grande en varios pasos. El archivo resultante no se puede utilizar con el enlazador. Para construir una tabla de símbolos, debe omitir el modificador S en la última ejecución de ar , o debe ejecutar ranlib en el archivo comprimido.
u
Normalmente, ar r …. inserta todos los archivos listados en el archivo. Si desea insertar solamente aquellos de los archivos que enumera que son más nuevos que los miembros existentes de los mismos nombres, use este modificador. El modificador u sólo está permitido para la operación r (reemplazar). En particular, la combinación qu no está permitida, ya que la comprobación de las marcas de tiempo perdería cualquier ventaja de velocidad de la operación q .
v
Este modificador solicita la versión verbose de una operación. Muchas operaciones muestran información adicional, como los nombres de archivo procesados, cuando se añade el modificador v .
V
Este modificador muestra el número de versión de ar .
ar ignora una opción inicial spelt -X32_64 , para compatibilidad con AIX. El comportamiento producido por esta opción es el predeterminado para GNU ar . ar no soporta ninguna de las otras opciones -X ; en particular, no soporta -X32 que es el valor por defecto para AIX ar .
Utilice el comando man ( % man) para ver cómo se utiliza un comando en su equipo particular.