ar

AR(1)                        GNU Development Tools                       AR(1)



NOME
       ar - crea, modifica ed estrae da archivi

SINTASSI
       ar [-X32_64] [-]p[mod] [--plugin name] [--target bfdname] [relpos]
       [count] archive [member...]

DESCRIZIONE
       Il programma GNU ar crea, modifica ed estrae da archivi.  Un archivio
       è un singolo file contenente una collezione di altri file in una
       strutura che rende possibile  ritrovare i singoli file originari
       (chiamati membri dell'archivio).

       I contenuti originali dei file, modi (permessi), data e ora,
       proprietario, e gruppo sono preservati nell'archivio, e possono essere
       ripristinati all'estrazione.

       GNU ar può mantenere archivi i cui membri hanno nomi di qualsiasi
       lunghezza; tuttavia, in funzione di come ar è configurato sul proprio
       sistema, un limite sulla lunghezza dei nomi può essere imposto per
       compatibilità con formati di archivio mantenuti con altri strumenti.
       Se esiste, il limite è spesso di 15 caratteri (tipico di formati
       relativi a a.out) o 16 caratteri (tipico di formati relativi a coff).

       ar è considerata un'utilità binaria, perché archivi di questo tipo
       sono spesso usati come librerie contenenti subroutine comunemente
       necessarie.

       ar crea un indice nell'archivio dei simboli definiti in moduli oggetto
       rilocabili quando si specifica il modificatore s.  Una volta creato,
       questo indice è aggiornato nell'archivio qualora ar appporti un
       cambiamento ai suoi contenuti (eccetto che per l'operazione
       aggiornamento q).  Un archivio con tale indice velocizza il
       collegamento alla libreria, e permette alle routine nella libreria di
       chiamare le altre senza tener conto della loro posizione nell'archivio.

       Si può usare nm -s o nm --print-armap per elencare questa tabella
       indice. Se a un archivio manca la tabella, può essere usata un'altra
       forma di ar chiamata ranlib per aggiungere solo la tabella.

       GNU ar può creare opzionalmente un archivio leggero, che contiene un
       indice dei simboli e riferimenti alle copie originali dei file membri
       dell'archivio.  Questo è utile per costruire librerie da usare
       all'interno di un albero costruito localmente, dove gli oggetti
       rilocabili ci si aspetta che rimangano disponibili, e copiare il
       contenuto di ogni oggetto comporterebbe solo spreco di tempo e di
       spazio.

       Un archivio può essere o leggero o normale.  Non può essere entrambi
       allo stesso tempo.  Una volta creato, il formato dell'archivio non può
       essere cambiato senza prima cancellarlo e poi creare un nuovo archivio
       al suo posto.

       Gli archivi leggeri sono anche flattened, così che aggiungendo un
       archivio leggero a un altro archivio leggero non lo nidifica, come
       accadrebbe con un archivio normale.  Invece gli elementi del primo
       archivio vengono aggiunti individualmente al secondo archivio.

       I percorsi agli elementi dell'archivio sono immagazzinati rispetto
       all'archivio stesso.  Per ragioni di sicurezza i percorsi assoluti e i
       percorsi con un componente "/../" non sono permessi.

       GNU ar è sviluppata per essere compatibile con due differenti
       strutture.  Si può controllare la sua attività usando opzioni a riga
       di comando, come le diverse varietà di ar su sistemi Unix; o, se si
       specifica la singola opzione a riga di comando -M, la si può
       controllare con uno script fornito attraverso lo standard input, come
       il programma MRI "librarian".

OPZIONI
       GNU ar permette di mescolare il codice operazione p e i  modificatori
       mod in qualunque ordine, all'interno del primo argomento della riga di
       comando.

       Se lo si desidera, si può cominciare il primo argomento della riga di
       comando con un trattino.

       La lettera chiave p specifica quale operazione eseguire; può essere
       qualunque delle seguenti, ma se ne deve specificare solo una:

       d   Cancella moduli dall'archivio.  Specifica i nomi dei moduli da
           cancellare come membri...; l'archivio non viene modificato se non
           si specificano file da cancellare.

           Se si specifica il modificatore v, ar elenca ciascun modulo che
           viene cancellato.

       m   Usare questa operazione per spostare i membri in un archivio.

           L'ordinamento dei membri in un archivio può creare differenze in
           come i programmi sono collegati usando la libreria, se un simbolo
           è definito in più di un membro.

           Se non sono usati modificatori con "m", ogni membro che si nomina
           negli argomenti member viene spostato alla fine dell'archivio; si
           possono usare i modificatori a, b, o i per spostarli invece in un
           punto specificato.

       p   Stampa i membri dell'archivio specificati, sul file dello standard
           output. Se è specificato il modificatore v, visualizza il nome del
           membro prima di copiare i suoi contenuti sullo standard output.

           Se non si specificano argomenti member, tutti i file nell'archivio
           sono stampati.

       q   Quick append; Storicamente aggiunge i file membro... alla fine
           dell'archivio, senza verificare le sostituzioni.

           I modificatori a, b e i non influenzano questa operazione; nuovi
           membri sono sempre posti alla fine dell'archivio.

           Il modificatore v fa sì che ar elenchi ciascun file quando viene
           aggiunto.

           Poiché il punto di questa operazione è la velocità , le
           implementazioni di ar hanno l'opzione di non aggiornare la tabella
           indice del simbolo dell'archivio, anche se ne esiste una.  Tuttavia
           troppi sistemi differenti presumono che le tabelle del simbolo
           siano sempre aggiornate, perciò GNU ar ricostruirà la tabella
           anche con un'aggiunta rapida.

           Notare che - GNU ar tratta il comando q come sinonimo di r -
           sostituendo i file già esistenti nell'archivio e aggiungendo i
           nuovi file alla fine.

       r   Inserisce i file membri... in archivio (con sostituzione). Questa
           operazione differisce da q nel senso che tutti i membri
           precedentemente esistenti sono cancellati se i loro nomi
           corrispondono a quelli che sono stati aggiunti.

           Se uno dei file nominati come membri... non esiste, ar visualizza
           un messaggio di errore, e lascia indisturbati tutti i membri
           esistenti dell'archivio che corrisponde a questo nome.

           In modo predefinito, i nuovi membri sono aggiunti alla fine del
           file; ma si può usare uno dei modificatori a, b, o i per
           richiedere posizionamenti relativi a qualche membro esistente.

           Il modificatore v usato con questa operazione ricava una riga di
           output per ciascun file inserito, insieme a una delle lettere a o r
           per indicare se il file è stato aggiunto (nessun membro vecchio
           cancellato) o sostituito.

       s   Aggiunge un indice all'archivio, o lo aggiorna se già esiste.
           Notare che questo comando è un'eccezione alla regola che ci può
           essere solo una lettera comando, in quanto è possibile usarla sia
           come comando che come modificatore.  In entrambi i casi fa la
           stessa cosa.

       t   Visualizza una tabella che elenca i contenuti dell'archivio, o
           quelli dei file elencati in membro... che sono presenti
           nell'archivio.  Normalmente è mostrato solo il nome del membro; se
           si vogliono vedere anche i modi (permessi), data e ora,
           proprietario, grupppo e dimensione, si può richiederlo
           specificando anche il modificatore v.

           Se non si specifica un membro sono elencati tutti i file
           nell'archivio.

           Se c'è più di un file con lo stesso nome (diciamo, fie) in un
           archivio (diciamo, b.a), ar t b.a fie elenca solo la prima istanza;
           per vederle tutte bisogna richiedere l'elenco completo --- nel
           nostro esempio, ar t b.a.

       x   Estrae membri (chiamati membro) dall'archivio.  Si può usare il
           modificatore v con questa operazione, per richiedere che ar elenchi
           il nome di ciascun membro quando lo estrae.

           se non si specifica un membro, tutti i file nell'archivio vengono
           estratti.

           I file non possono essere estratti da un archivio leggero.

       --help
           Mostra l'elenco delle opzioni da riga di comando supportate da ar
           ed poi esce.

       --version
           Mostra le informazioni sulla versione di ar ed poi esce.

       Un numero di modificatori (mod) può seguire immediatamente la lettera
       chiave p per specificare variazioni su di un comportamento di
       un'operazione:

       a   Aggiunge nuovi file dopo un membro esistente dell'archivio.  Se si
           usa il modificatore a, il nome di un membro di archivio esistente
           deve essere presente come argomento relpos, prima della
           specificazione dell'archivio.

       b   Aggiunge nuovi file prima di un membro esistente dell'archivio.  Se
           si usa il modificatore b, il nome di un membro di archivio
           esistente deve essere presente come argomento relpos, prima della
           specificazione dell'archivio. (lo stesso come i).

       c   Crea l'archivio.  L'archivio specificato è sempre creato se esso
           non esiste, quando si richiede un aggiornamento.  Ma, usando questo
           modificatore, viene emesso un avviso, a meno che non si specifichi
           in anticipo che si intende crearlo.

       D   Opera in modalità deterministica.  Quando si aggiungono file e
           l'indice di archivio, usa zero per gli UID, i GID e le marcature
           temporali, e usa permessi di file coerenti per tutti i file.
           Quando viene usata quest'opzione, se ar è usato con le stesse
           identiche opzioni e gli stessi file, esecuzioni multiple creano
           file di output identici, a prescindere da proprietari, gruppi,
           permessi, o data/ora di modifica, dei file di input.

           Se binutils è stato configurato con
           --enable-deterministic-archives, questa modalità è attiva in modo
           predefinito.  Può essere disabilitata col modificatore U, più
           avanti.

       f   Tronca i nomi nell'archivio.  GNU ar normalmente permetterà nomi
           di file di qualunque lunghezza.  Questo farà si che vengano creati
           archivi non compatibili con i programmi ar nativi di certi sistemi.
           Se questo è un problema, il modificatore f può essere usato per
           troncare i nomi dei file quando vengono messi nell'archivio.

       i   Inserisce nuovi file prima di un membro esistente dell'archivio.
           Se si usa il modificatore i, il nome di un membro di archivio
           esistente deve essere presente come argomento relpos, prima della
           specificazione dell'archivio.  (lo stesso come b).

       l   Questo modificatore è accettato ma non usato.

       N   Usa il parametro count.  Questo è usato se ci sono campi multipli
           nell'archivio con lo stesso nome. Estrae o cancella l'istanza count
           del dato nome dall'archivio.

       o   Preserva le date originali dei membri quando li si estrae.  Se non
           si specifica questo modificatore, i file estratti dall'archivio
           sono marcati con l'ora dell'estrazione.

       P   Usa il nome di percorso completo quando i nomi dell'archivio
           corrispondono.  GNU ar non può creare un archivio con un nome di
           percorso completo (tali archivi non sono conformi a POSIX), ma
           altri creatori di archivi lo possono fare.  Questa opzione fara sì
           che GNU ar faccia corrispondere i nomi di file usando un nome di
           percorso completo, che può essere conveniente quando si estrae un
           singolo file da un archivio creato da un altro strumento.

       s   Scrive un indice dei file oggetto nell'archivio, o ne aggiorna uno
           esistente, anche se non vengono apportati altri cambiamenti
           all'archivio.  Si può usare questo modificatore sia con altre
           operazioni che da solo.  L'esecuzione di ar s su un archivio è
           equivalente all'esecuzione di ranlib su di esso.

       S   Non genera una tabella simboli dell'archivio. Questo può
           accelerare la costruzione di una grande libreria in molte fasi.
           L'archivio risultante non può essere usato con il linker. Per
           costruire una tabella simboli bisogna omettere il modificatore S
           sull'ultima esecuzione di ar, o bisogna eseguire ranlib
           sull'archivio.

       T   Rende l'archivio specificato un archivio leggero.  Se esiste giÃ
           ed è un archivio regolare, i membri esistenti devono essere
           presenti nella stessa directory come archivio.

       u   Normalmente ar r... inserisce tutti i file elencati nell'archivio.
           Se si desidera inserire solo quei file elencati che sono più nuovi
           dei membri esistenti dello stesso nome, usare questo modificatore.
           Il modificatore u è permesso solo per l'operazione r
           (sostituzione).  In particolare, la combinazione qu non è
           permessa, poiché la verifica di data e ora farebbe perdere ogni
           vantaggio in velocità dall'operazione q.

       U   Non non opera in  modalità deterministica.  Questo è l'inverso
           del modificatore D visto sopra: i file e l'indice di archivio
           aggiunti producono i loro valori effettivi di UID, GID, marcatura
           temporale e permessi.

           Questo è il predefinito a meno che binutils non sia stato
           configurato con --enable-deterministic-archives.

       v   Questo modificatore richiede la versione prolissa di un'operazione.
           Molte operazioni visualizzano informazioni aggiuntive, come i nomi
           di file processati, quando viene aggiunto il modificatore v.

       V   Questo modificatore mostra il numero di versione di ar.

       ar ignora un'opzione iniziale chiamata -X32_64, per compatibilità con
       AIX.  Il comportamento prodotto da questa opzione è il comportamento
       predefinito di GNU ar.  ar non supporta nessuna delle altre opzioni -X;
       in particolare, esso non supporta -X32, che è il comportamento
       predefinito di AIX ar.

       Il commutatore opzionale da riga di comando --plugin nome fa caricare a
       ar il plugin chiamato nome che aggiunge il supporto per altri formati
       di file.  Qust'opzione è disponibile solo se la toolchain (il gruppo
       di strumenti) è stato costruito col supporto per i plugin abilitato.

       Il commutatore opzionale da riga di comando --target bfdname specifica
       che i membri dell'archivio sono in un formato di codice oggetto diverso
       dal formato predefinito per il sistema in uso.  Si veda

       @file
           Legge le opzioni da riga di comando da file.  Le opzioni lette sono
           inserite al posto dell'opzione originale @file.  Se file non esiste
           o non può essere letto, l'opzione sarà trattata letteralmente, e
           non rimossa.

           Le opzioni in file sono separate da spazi vuoti.  Si può includere
           uno spazio vuoto in un'opzione racchiudendo l'intera opzione fra
           apici, singoli o doppi.  Può essere incluso qualsiasi carattere
           (compresa la barra inversa) facendo precedere al carattere una
           barra inversa.  Il file può esso stesso contenere ulteriori
           opzioni @file; ciascuna di queste opzioni sarà elaborata
           ricorsivamente.

VEDERE ANCHE
       nm(1), ranlib(1), e i campi Info per binutils.

COPYRIGHT
       Copyright (c) 1991-2014 Free Software Foundation, Inc.

       Permission is granted to copy, distribute and/or modify this document
       under the terms of the GNU Free Documentation License, Version 1.3 or
       any later version published by the Free Software Foundation; with no
       Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
       Texts.  A copy of the license is included in the section entitled "GNU
       Free Documentation License".

DIRITTI DI COPIA
       Copyright (c) 1991-2014 Free Software Foundation, Inc.

       Traduzione in italiano a cura di ILDP - Italian Linux Documentation
       Project http://www.pluto.it/ildp.  Segnalare eventuali errori di
       traduzione a ildp@pluto.it

       Questa è una traduzione non ufficiale in italiano dei permessi di
       copia riportati nella precedente sezione "COPYRIGHT".  Non è una
       pubblicazione della Free Software Foundation, e non ha validità legale
       per i termini di distribuzione della documentazione; solo il testo
       originale inglese ha tale validità .

       This is an unofficial translation into Italian of the above section
       "COPYRIGHT".  It was not published by the Free Software Foundation, and
       does not legally state the distribution terms for this documentation;
       only the original English text does that.

       Ã permesso copiare, distribuire e/o modificare questo documento
       seguendo i termini della  GNU Free Documentation License (Licenza per
       documentazione libera GNU), versione 1.3 o ogni versione successiva
       pubblicata dalla Free Software Foundation; senza sezioni non
       modificabili, senza testi di prima di copertina e di quarta di
       copertina.  Una copia della licenza è inclusa nella sezione intitolata
       "GNU Free Documentation License" (Licenza per la documentazione libera
       GNU).



binutils-2.25                     2014-12-23                             AR(1)