Linux |
CentOS 4.8 |
|
ar(1) |
ar − Créer, modifier et extraire des archives. |
ar [-]{dmpqrtx}[abcfilNoPsSuvV] [nom_membre] [numéro] archive fichiers... |
Le programme GNU ar crée, modifie et extrait des fichiers à partir d’archives. Une archive est un fichier unique contenant une collection d’autres fichiers qui permet de retrouver les fichiers originaux individuels (appelés membres de l’archive). Le contenu des fichiers originaux, le mode (permissions), l’horodate, le propriétaire et le groupe sont préservés dans l’archive, et peuvent être reconstitués durant l’extraction. GNU ar peut gérer des archives dont les membres ont des noms de n’importe quelle longueur ; néanmoins, si ar est configuré de cette façon sur votre système, une limite sur la longueur des noms de membres peut être imposée (pour assurer la compatibilité avec des formats d’archive maintenus par d’autres outils). Si elle existe, la limite est souvent de 15 caractères (typique des formats relatifs au a.out), ou de 16 caractères (typique des formats relatifs à coff). ar est considéré comme un utilitaire binaire car les archives de ce type sont le plus souvent utilisées en tant que librairies contenant des sous−routines communément utilisées. ar crée un index des symboles définis dans les modules objets relogeables dans l’archive quand vous spécifiez le modificateur « s ». Une fois créé, cet index est mis à jour dans l’archive à chaque fois que ar modifie son contenu (sauf pour l’opération « q » de mise à jour). Une archive avec un tel index accélère l’édition des liens avec la librairie, et permet aux routines de cette dernière de s’appeler l’une l’autre sans s’occuper de leurs emplacements respectifs dans l’archive. Vous pouvez utiliser « nm −s » ou « nm −−print−armap » pour lister cet table d’index. Si l’archive ne contient pas cette table, une autre forme de ar appelée ranlib peut être utilisée pour n’ajouter que la table. ar insiste pour avoir au moins deux arguments : une lettre−clé spécifiant l’opération (éventuellement accompagnée d’autres lettres−clés spécifiant les modificateurs), et le nom de l’archive à traiter. La plupart des opérations peuvent également accepter des arguments fichiers , qui spécifient sur quels fichiers opérer. |
GNU ar vous permet de mélanger le code d’opération p et les drapeaux de modificateurs mod dans n’importe quel ordre, à l’intérieur du premier argument de la ligne de commandes. Si vous le souhaitez, vous pouvez faire débuter le premier argument de ligne de commandes par un tiret. La lettre−clé p spécifie quelle opération exécuter ; elle peut être n’importe laquelle des lettres suivantes, mais vous ne pouvez en spécifier qu’une seule : |
d |
Effacer des modules d’une archive. Spécifiez les noms des modules à effacer en tant que fichiers ; l’archive n’est pas modifiée si vous n’indiquez aucun fichier à effacer. |
Si vous spécifiez le modificateur « v » , ar listera chaque module pendant son effacement. |
m |
Utilisez cette opération pour déplacer des membres dans une archive. |
L’ordre des membres d’une archive peut influencer la façon dont les programmes sont liés en utilisant la librairie, p.ex. si un symbole est défini dans plusieurs membres. Si aucun modificateur n’est utilisé avec m, tous les membres nommés dans les arguments fichiers sont déplacés à la fin de l’archive. Vous pouvez utiliser les modificateurs « a », « b », ou « i » pour les déplacer à un autre endroit (que vous spécifiez). |
p |
Afficher les membres spécifiés de l’archive sur la sortie standard. Si le modificateur « v » est spécifié, afficher le nom du membre avant de copier son contenu sur la sortie standard. |
Si vous ne spécifiez pas de fichiers, tous les fichiers de l’archive seront affichés. |
q |
Concaténation rapide ; ajoute les fichiers à la fin de l’ archive, sans se soucier des remplacements. |
Les modificateurs « a », « b », et « i » n’affectent pas cette opération ; les nouveaux membres sont toujours placés à la fin de l’archive. Le modificateur « v » fait lister par ar chaque fichier pendant sa concaténation. Puisque le but de cette opération est la vitesse, l’index de la table des symboles de l’archive n’est pas mis à jour, même s’il existait déjà ; vous pouvez utiliser explicitement « ar s » ou ranlib pour mettre à jour l’index de la table des symboles. Néanmoins, de trop nombreux systèmes différents supposent que la concaténation rapide reconstruit l’index, et donc GNU ar implémente « q » comme un synonyme pour « r ». |
r |
Insérer les fichiers dans l’archive (avec remplacement). Cette opération diffère de « q » dans le sens que tous les membres existants au préalable sont effacés si leur nom correspondent à ceux que l’on ajoute. |
Si l’un des fichiers nommés dans fichiers n’existe pas, ar affiche un message d’erreur, et laisse inchangé tout membre existant portant ce nom. Par défaut, les nouveaux membres sont ajoutés à la fin du fichier, mais vous pouvez utiliser l’un des modificateurs « a », « b », ou « i » pour requérir un placement relatif à certains membres existants. Le modificateur « v » utilisé avec cette opération affiche une ligne de sortie pour chaque fichier inséré, en même temps que l’une des lettres « a » ou « r » pour indiquer si le fichier a été concaténé (aucun ancien membre effacé) ou remplacé. |
t |
Afficher une table listant le contenu de archive, ou celui des fichiers présents à la fois dans fichiers et dans l’archive. Normalement, seul le nom du membre est montré mais, si vous voulez également voir les modes (permissions), l’horodate, le propriétaire, le groupe et la taille, vous pouvez le demander en spécifiant le modificateur « v ». |
Si vous ne précisez pas de fichiers, tous les fichiers de l’archive seront listés. S’il y a plus d’un fichier avec le même nom (disons, « fie ») dans une archive (disons « b.a »), « ar t b.a fie » listera uniquement la première instance ; pour les voir toutes, vous devez demander un listing complet — dans notre exemple, « ar t b.a ». |
x |
Extraire les membres (nommés fichiers) de l’archive. Vous pouvez utiliser le modificateur « v » avec cette opération, pour demander qu’ ar liste chaque nom pendant son extraction. |
Si vous ne mentionnez pas de fichiers, tous les fichiers de l’archive seront extraits. |
Un certain de modificateurs (mod) peuvent suivre immédiatement la lettre−clé p, pour modifier le comportement de l’opération : |
a |
Ajouter les nouveaux fichiers après un membre existant dans l’archive. Si vous utilisez le modificateur a, le nom d’un membre existant dans l’archive doit être présent comme argument nom_membre , avant la spécification de l’ archive. |
||
b |
Ajouter les nouveaux fichiers avant un membre existant dans l’archive. Si vous utilisez le modificateur b, le nom d’un membre existant dans l’archive doit être présent comme argument nom_membre , avant la spécification de l’ archive . (comme pour « i »). |
||
c |
Créer l’archive. L’archive spécifiée est toujours créée si elle n’existait pas, quand vous demandez une mise à jour. Mais un avertissement est émis à moins que vous ne spécifiez à l’avance que vous voulez la créer, en utilisant ce modificateur. |
||
f |
Tronquer les noms dans l’archive. ar permet normalement des noms de fichiers de n’importe quelle longueur, ce qui crée des archives qui ne sont pas compatibles avec le programme ar natif sur certains systèmes. Si cela pose un problème, le modificateur f peut être utilisé pour tronquer les noms de fichiers avant de les placer dans l’archive. |
||
i |
Insérer les nouveaux fichiers avant tout membre existant dans l’archive. Si vous utilisez le modificateur i, le nom d’un membre existant de l’archive doit être présent comme argument nom_membre , avant la spécification de l’ archive . (comme pour « b »). |
||
l |
Ce modificateur est accepté mais n’est pas utilisé. |
||
N |
Utiliser le paramètre numéro. Il est utilisé s’il y a de multiples entrées dans l’archive portant le même nom. Extrait ou supprime la numéro -ième instance du nom donné dans l’archive. |
||
o |
Préserver les dates originales des membres pendant leur extraction. Si vous ne spécifiez pas ce modificateur, les fichiers extraits de l’archive seront horodatés avec le moment de l’extraction. |
||
P |
Utiliser le nom du chemin complet pendant la mise en correspondance des noms de l’archive. ar ne peut pas créer d’archive avec un nom de chemin complet (de telles archives ne suivent pas la norme POSIX), mais d’autres créateurs d’archives le peuvent. Cette option dira à ar de faire correspondre les noms de fichiers en utilisant un chemin complet, ce qui peut être pratique pendant l’extraction d’un seul fichier d’une archive créée par un autre outil. |
||
s |
Ãcrire un index des fichiers objets dans l’archive, ou en mettre à jour un existant, même si l’archive ne subit aucune autre modification. Vous pouvez utiliser ce drapeau de modification avec n’importe quelle opération, ou bien tout seul. Lancer « ar s » sur une archive est équivalent à exécuter « ranlib » sur elle. |
||
S |
Ne pas générer de table des symboles de l’archive. Cela peut accélérer grandement la construction d’une grande librairie. L’archive résultante ne peut être utilisée par l’éditeur de liens. Pour construire une table des symboles, vous devez omettre le modificateur « S » à la dernière exécution de « ar », ou vous devez lancer « ranlib » sur l’archive. |
||
u |
Normalement, ar r... insère tous les fichiers listés dans l’archive. Si vous voulez insérer uniquement les fichiers que vous avez listés qui sont plus récents que les membres existant de même nom, utilisez ce modificateur. Le modificateur « u » est permis uniquement pour l’opération « r » (remplacer). En particulier, la combinaison « qu » n’est pas permise, puisque la vérification des horodates ferait perdre l’avantage de vitesse de l’opération « q ». |
||
v |
Ce modificateur requiert la version verbeuse (bavarde) d’une opération. Beaucoup d’opérations affichent des informations additionnelles, comme les noms des fichiers traités, quand le modificateur « v » est ajouté. |
||
V |
Ce modificateur affiche le numéro de version de ar. |
l’entrée « binutils » dans info ; The GNU Binary Utilities, Roland H. Pesch (Octobre 1991). nm(1), ranlib(1). |
Copyright (c) 1991, 1992, 1993, 1995, 1998, 1999, 2000 Free Software Foundation, Inc. Ce document est distribué sous les termes de la GNU Free Documentation License, version 1.1. Cette licence est décrite dans les sources de cette page de manuel (NdT : en anglais), mais n’est pas affichée ici afin de rendre ce manuel plus concis. Des copies de cette licence peuvent également être obtenues sur http://www.gnu.org/copyleft/. |
Frédéric Delanoy, 2001. |
ar(1) |