fbpx

Comandos Linux – Comando ar

Comando ar do Linux

Atualizado: 05/04/2019 por Computer Hope

comando ar

Em sistemas operacionais do tipo Unix, o comando ar cria, modifica e extrai arquivos de arquivos.

Este documento cobre a versão GNU / Linux do arch .

Descrição

O programa ar cria, modifica e extrai dos arquivos . Um arquivo morto é um único arquivo que contém uma coleção de outros arquivos em uma estrutura que possibilita recuperar os arquivos individuais originais (chamados membros do arquivo morto).

O conteúdo, o modo ( permissões ), o carimbo de data / hora , o proprietário e o grupo dos arquivos originais são preservados no arquivo morto e podem ser restaurados na extração.

O GNU ar pode manter arquivos cujos membros têm nomes de qualquer tamanho; no entanto, dependendo de como o ar estiver configurado no seu sistema, um limite no tamanho do nome do arquivo pode ser imposto para compatibilidade com os formatos de arquivo usados ​​por outras ferramentas. Se existir, o limite geralmente é de 15 ou 16 caracteres .

ar é considerado um utilitário binário porque arquivos desse tipo são mais frequentemente usados ​​como bibliotecas que contêm sub-rotinas comumente necessárias.

ar cria um índice para os símbolos definidos nos módulos de objetos realocáveis ​​no arquivo morto quando você especifica os modificadores. Depois de criado, esse índice é atualizado no arquivo sempre que ar faz uma alteração em seu conteúdo (exceto para a operação q update). Um arquivo com esse índice acelera o vínculo com a biblioteca e permite que as rotinas da biblioteca se chamem sem levar em consideração sua localização no arquivo.

Você pode usar nm -s ou nm –print-armap para listar essa tabela de índice. Se um arquivo não possui a tabela, outra forma de ar chamada ranlib pode ser usada para adicionar apenas a tabela.

O GNU ar pode opcionalmente criar um arquivo compactado, que contém um índice de símbolos e referências às cópias originais dos arquivos membros dos arquivos. Esse arquivo é útil para criar bibliotecas para uso em uma compilação local, onde espera-se que os objetos relocáveis ​​permaneçam disponíveis, e a cópia do conteúdo de cada objeto gastaria apenas tempo e espaço. Os arquivos compactados também são achatados, de forma que a adição de um ou mais arquivos a um arquivo fino adicionará os elementos do arquivo aninhado individualmente. Os caminhos para os elementos do arquivo morto são armazenados em relação ao próprio arquivo morto.

O GNU ar foi projetado para ser compatível com duas instalações diferentes. Você pode controlar sua atividade usando opções de linha de comando , como as diferentes variedades de ar nos sistemas Unix ; ou, se você especificar a opção de linha de comando única -M , poderá controlá-la com um script fornecido via entrada padrão , como o programa “bibliotecário” da RM.

Sintaxe

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

Opções

O GNU ar permite misturar o código de operação pe sinalizadores modificadores em qualquer ordem, dentro do primeiro argumento da linha de comando.

Se desejar, você pode iniciar o primeiro argumento da linha de comandos com um traço.

A letra p especifica qual operação executar; pode ser um dos seguintes, mas você deve especificar apenas um deles:

Operações:

dExclua os módulos do arquivo morto. Especifique os nomes dos módulos a serem excluídos como ” membro … “; o archive é intocado se você não especificar nenhum arquivo a ser excluído.

Se você especificar o modificador v , ar listará cada módulo conforme ele é excluído.

mUse esta operação para mover membros em um arquivo morto.

A ordem dos membros em um arquivo morto pode fazer a diferença na forma como os programas são vinculados usando a biblioteca, se um símbolo estiver definido em mais de um membro.

Se nenhum modificador for usado com ” m “, quaisquer membros que você nomeie nos argumentos do membro serão movidos para o final do arquivo morto; você pode usar os modificadores a, b ou i para movê-los para um local especificado.

pImprima os membros especificados do arquivo morto no arquivo de saída padrão. Se o modificador v for especificado, mostre o nome do membro antes de copiar seu conteúdo para a saída padrão.

Se você não especificar argumentos de membro, todos os arquivos no archive serão impressos.

qAnexo rápido; Historicamente, adicione os arquivos ” membro … ” ao final do arquivo, sem verificar a substituição.

Os modificadores a , be eu não afetam esta operação; novos membros são sempre colocados no final do arquivo.

O modificador v faz uma lista de cada arquivo conforme ele é anexado.

Como o ponto desta operação é a velocidade, o índice da tabela de símbolos do arquivo morto não é atualizado, mesmo que já exista; você pode usar ar s ou ranlib explicitamente para atualizar o índice da tabela de símbolos.

No entanto, muitos sistemas diferentes assumem que o acréscimo rápido recria o índice, então o GNU ar implementa q como sinônimo de r .

rInsira os arquivos ” membro … ” no arquivo morto (com substituição). Esta operação difere de q , pois quaisquer membros existentes anteriormente são excluídos se seus nomes corresponderem aos adicionados.

Se um dos arquivos nomeados em ” membro … ” não existir, ar exibirá uma mensagem de erro e deixará imperturbável qualquer membro existente do arquivo correspondente a esse nome.

Por padrão, novos membros são adicionados no final do arquivo; mas você pode usar um dos modificadores a , b ou i para solicitar posicionamento em relação a algum membro existente.

O modificador v usado com esta operação gera uma linha de saída para cada arquivo inserido, juntamente com uma das letras a ou r para indicar se o arquivo foi anexado (nenhum membro antigo excluído) ou substituído.

sAdicione um índice ao arquivo ou atualize-o, se ele já existir. Observe que este comando é uma exceção à regra de que só pode haver uma letra de comando, pois é possível usá-lo como comando ou modificador. Em ambos os casos, faz a mesma coisa.
tExiba uma tabela listando o conteúdo do arquivo morto ou os arquivos listados no membro … que estão presentes no arquivo morto. Normalmente, apenas o nome do membro é mostrado; se você também quiser ver os modos (permissões), carimbo de data e hora, proprietário, grupo e tamanho, poderá solicitar isso especificando também o modificador v .

Se você não especificar um membro, todos os arquivos no archive serão listados.

xExtrair membros ( membro nomeado) do arquivo morto. Você pode usar o modificador v com esta operação, para solicitar que seja listado cada nome à medida que o extrai.

Se você não especificar um membro , todos os arquivos no archive serão extraídos.

Os arquivos não podem ser extraídos de um arquivo compactado.

–helpExibe a lista de opções de linha de comando suportadas por ar e sai.
–versionExibe as informações da versão de ar e sai.

Vários modificadores podem seguir imediatamente a letra da tecla p , para especificar variações no comportamento de uma operação:

Modificadores:

aAdicione novos arquivos após um membro existente do arquivo morto. Se você usar o modificador a , o nome de um membro do archive existente deverá estar presente como o argumento relpos , antes da especificação do archive.
bAdicione novos arquivos antes de um membro existente do arquivo morto. Se você usar o modificador b , o nome de um membro do archive existente deverá estar presente como o argumento relpos , antes da especificação do archive. (o mesmo que i ).
cCrie o arquivo morto. O arquivo especificado é sempre criado se não existir, quando você solicita uma atualização. Mas um aviso é emitido, a menos que você especifique antecipadamente que espera criá-lo, usando este modificador.
DOpere no modo determinístico. Ao adicionar arquivos e o índice de archive, use zero para UIDs, GIDs, carimbos de data e hora e use modos de arquivo consistentes para todos os arquivos. Quando essa opção é usada, se ar for usado com opções idênticas e arquivos de entrada idênticos, várias execuções criarão arquivos de saída idênticos, independentemente dos proprietários, grupos, modos de arquivo ou tempos de modificação dos arquivos de entrada.

Se binutils foi configurado com –enable-deterministic-archives , esse modo está ativado por padrão. Ele pode ser desativado com o modificador U , abaixo.

fTruncar nomes no arquivo morto. O GNU ar normalmente permitirá nomes de arquivos de qualquer tamanho. Isso fará com que ele crie arquivos que não são compatíveis com o programa ar nativo em alguns sistemas. Se isso for um problema, o modificador f pode ser usado para truncar nomes de arquivos ao colocá-los no arquivo morto.
iInsira novos arquivos antes de um membro existente do arquivo morto. Se você usar o modificador i , o nome de um membro do archive existente deverá estar presente como o argumento relpos , antes da especificação do archive. (o mesmo que b ).
IEste modificador é aceito, mas não usado.
NUsa o parâmetro count. Isso é usado se houver várias entradas no arquivo morto com o mesmo nome. Extraia ou exclua a contagem de instâncias do nome fornecido do arquivo morto.
oPreserve as datas originais dos membros ao extraí-las. Se você não especificar este modificador, os arquivos extraídos do arquivo morto serão carimbados com o horário da extração.
PUse o nome completo do caminho ao combinar nomes no arquivo morto. O GNU ar não pode criar um arquivo com um nome de caminho completo (esses arquivos não são uma reclamação POSIX), mas outros criadores de arquivos podem. Esta opção fará com que o GNU ar corresponda aos nomes dos arquivos usando um nome de caminho completo, o que pode ser conveniente ao extrair um único arquivo de um arquivo criado por outra ferramenta.
sEscreva um índice de arquivo de objeto no arquivo morto ou atualize um existente, mesmo que nenhuma outra alteração seja feita no arquivo morto. Você pode usar esse sinalizador modificador com qualquer operação ou sozinho. Executar ar s em um archive é equivalente a executar ranlib nele.
SNão gere uma tabela de símbolos de arquivamento. Isso pode acelerar a construção de uma grande biblioteca em várias etapas. O arquivo resultante não pode ser usado com o vinculador. Para criar uma tabela de símbolos, você deve omitir o modificador S na última execução de ar ou executar ranlib no archive.
TTornar o arquivo especificado um arquivo fino. Se ele já existir e for um arquivo morto regular, os membros existentes deverão estar presentes no mesmo diretório que o arquivo morto.
uNormalmente, ar r … insere todos os arquivos listados no arquivo morto. Se você deseja inserir apenas os arquivos listados mais recentes que os membros existentes com o mesmo nome, use este modificador. O modificador u é permitido apenas para a operação r (“substituir”). Em particular, a combinação qu não é permitida, pois a verificação dos registros de data e hora perderia qualquer vantagem de velocidade com a operação q .
U  Não opere no modo determinístico. Este é o inverso do modificador D , acima: os arquivos adicionados e o índice de archive obterão seus valores reais de UID, GID, carimbo de data e hora e modo de arquivo.

Esse é o padrão, a menos que o binutils tenha sido configurado com –enable-deterministic-archives .

vEste modificador solicita a versão detalhada de uma operação. Muitas operações exibem informações adicionais, como nomes de arquivos processados, quando o modificador v é anexado.
VEste modificador mostra o número da versão de ar .

De outros:

@file  Leia as opções de linha de comando do arquivo . As opções lidas são inseridas no lugar da opção original @ file . Se o arquivo não existir ou não puder ser lido, a opção será tratada literalmente e não removida.

As opções no arquivo são separadas por espaço em branco . Um caractere de espaço em branco pode ser incluído em uma opção colocando a opção inteira entre aspas simples ou duplas. Qualquer caractere (incluindo uma barra invertida) pode ser incluído prefixando o caractere a ser incluído em uma barra invertida. O próprio arquivo pode conter opções adicionais de @ arquivo ; essas opções serão processadas recursivamente.

Exemplos

  ar r myfile.a 'ls * .o'

Substitua myfile.a pelos arquivos de objeto no diretório atual.

basename – retira as informações do diretório e os sufixos dos nomes dos arquivos.
cpio – Copia arquivos para ou de arquivos.
ld – Editor de links para arquivos de objetos.
make – Crie automaticamente programas executáveis ​​e bibliotecas a partir do código fonte.
tar – Crie, modifique, liste o conteúdo e extraia arquivos de arquivos tar.

13 de novembro de 2019

Sobre nós

A Linux Force Brasil é uma empresa que ama a arte de ensinar. Nossa missão é criar talentos para a área de tecnologia e atender com excelência nossos clientes.

CNPJ: 13.299.207/0001-50
SAC:         0800 721 7901

[email protected]

Comercial  Comercial: (11) 3796-5900

Suporte:    (11) 3796-5900
[email protected]

Copyright © Linux Force Security  - Desde 2011.