Provided by: manpages-it_3.73-2_all bug

NOME

       ar - crea, modifica ed estrae da archivi

SINTASSI

       ar [--plugin nome] [-X32_64] [-]p[mod [relpos] [count]] [--target bfdname] archivio [membro...]

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.

       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-2013 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-2013 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).