Skip to content

Compreendendo o Comando Linux: Ar

30 de abril de 2021

Neste artigo

O GNU ar programa cria, modifica e extrai itens de arquivos de arquivos. A arquivo é um único arquivo que contém uma coleção de outros arquivos em uma estrutura que torna possível recuperar os arquivos individuais originais (chamados membros do arquivo).

Visão geral

Comando Linux ar

O conteúdo, modo (permissões), carimbo de data / hora, proprietário e grupo dos arquivos originais são preservados no arquivo e podem ser restaurados na extração. GNU ar pode manter arquivos cujos membros tenham nomes de qualquer tamanho; no entanto, dependendo de como ar estiver configurado em seu sistema, um limite no comprimento do nome do membro pode ser imposto para compatibilidade com formatos de arquivo mantidos com outras ferramentas. Se existir, o limite geralmente é de 15 caracteres.

Ar é considerado um utilitário binário porque os arquivos deste tipo são mais frequentemente usados ​​como bibliotecas segurando sub-rotinas comumente necessárias.

Ar cria um índice para os símbolos definidos em módulos de objetos relocáveis ​​no arquivo quando você especifica o modificador s. Uma vez criado, este índice é atualizado no arquivo sempre que ar faz uma mudança em seu conteúdo (exceto para o q operação de atualização). Um arquivo com esse índice acelera a vinculação à biblioteca e permite que as rotinas na biblioteca chamem umas às outras, independentemente de sua colocação no arquivo. Você pode usar nm-s ou nm –print-armap para listar esta tabela de índice. Se um arquivo não tiver mesa, outra forma de ar chamado ranlib adiciona apenas a mesa. GNU ar foi projetado para ser compatível com duas instalações diferentes. Controle sua atividade usando opções de linha de comando, como as diferentes variedades de ar em sistemas Unix; ou, se você especificar a opção de linha de comando única -M, você pode controlá-lo com um script fornecido pela entrada padrão.

Sinopse

O comando assume a seguinte forma geral: ar [-X32_64] [-]p[mod [relpos] [count]]arquivo [member…]

Opções

GNU ar permite que você misture o código de operação p e sinalizadores modificadores mod em qualquer ordem, no primeiro argumento da linha de comando. Se desejar, você pode começar o primeiro argumento da linha de comando com um travessão. O p keyletter especifica qual operação executar; pode ser qualquer um dos seguintes, mas você deve especificar apenas um deles:

  • d: Excluir módulos do arquivo. Especifique os nomes dos módulos a serem excluídos como membro; o arquivo não é alterado se você não especificar nenhum arquivo a ser excluído. Se você especificar o v modificador, ar lista cada módulo conforme ele é excluído.
  • m: Use esta operação para mover membros em um arquivo. A ordem dos membros em um arquivo pode fazer diferença na forma como os programas são vinculados usando a biblioteca, se um símbolo for definido em mais de um membro. Se nenhum modificador for usado com m, quaisquer membros que você nomear no membro argumentos são movidos para o fim do arquivo; você pode usar o uma, b, ou eu modificadores para movê-los para um local especificado.
  • p: Impressão os membros especificados do arquivo, para o arquivo de saída padrão. Se o v o modificador é especificado, mostra o nome do membro antes de copiar seu conteúdo para a saída padrão. Se você especificar não membro argumentos, todos os arquivos no arquivo são impressos.
  • q: Anexo rápido; Historicamente, adicione os arquivos membro até o fim de arquivo, sem verificar a substituição. Os modificadores uma, b, e eu Faz não afetar esta operação; novos membros são sempre colocados no final do arquivo. O modificador v faz ar liste cada arquivo à medida que é anexado. Como o ponto dessa operação é a velocidade, o índice da tabela de símbolos do arquivo 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 reconstrói o índice, então GNU ar implementa “q” como sinônimo de “r”.
  • r: Insira os arquivos membro para dentro arquivo (com substituição) Esta operação difere de q em que todos os membros existentes anteriormente são excluídos se seus nomes corresponderem aos que estão sendo adicionados. Se um dos arquivos nomeados em membro não existe, ar exibe uma mensagem de erro e não perturba os membros existentes do arquivo que correspondam a esse nome. Por padrão, novos membros são adicionados no final do arquivo, mas você pode usar um dos modificadores uma, b, ou eu para solicitar colocação em relação a algum membro existente. O modificador v usado com esta operação elicia uma linha de saída para cada arquivo inserido, junto com uma das letras uma ou r para indicar se o arquivo foi anexado (nenhum membro antigo foi excluído) ou substituído.
  • t: Exibir um tabela listando o conteúdo de arquivo, ou os dos arquivos listados em membro que estão presentes no arquivo. Normalmente, apenas o nome do membro é mostrado; se você também quiser ver os modos (permissões), carimbo de data / hora, proprietário, grupo e tamanho, você pode solicitar isso especificando também o v modificador. Se você não especificar um membro, todos os arquivos no arquivo são listados. Se houver mais de um arquivo com o mesmo nome (digamos, vergonha) em um arquivo (digamos BA), ar t ba fie lista apenas a primeira instância; para ver todos eles, você deve pedir uma lista completa – em nosso exemplo, ar t ba.
  • x: Extrair membros (nomeados membro) do arquivo. Use o v modificador com esta operação para solicitar que ar liste cada nome à medida que ele o extrai. Se você não especificar um membro, todos os arquivos no arquivo são extraídos.

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

  • uma: Adicionar novos arquivos após um membro existente do arquivo. Se você usar o modificador uma, o nome de um membro do arquivo existente deve estar presente como o relpos argumento, antes do arquivo especificação.
  • b: Adicionar novos arquivos antes um membro existente do arquivo. Se você usar o modificador b, o nome de um membro do arquivo existente deve estar presente como o relpos argumento, antes do arquivo especificação (igual a eu)
  • c: Crio o arquivo. O arquivo especificado é sempre criado, se não existir, quando você solicita uma atualização. Mas um aviso é emitido, a menos que você especifique com antecedência que espera criá-lo, usando este modificador.
  • f: Truncar nomes no arquivo. GNU ar normalmente permitirá nomes de arquivo de qualquer comprimento, forçando-o a criar arquivos que não são compatíveis com o ar programa em alguns sistemas. Se a compatibilidade for uma preocupação, o f O modificador pode ser usado para truncar nomes de arquivos ao colocá-los no arquivo.
  • eu: Insira novos arquivos antes um membro existente do arquivo. Se você usar o modificador eu, o nome de um membro do arquivo existente deve estar presente como o relpos argumento, antes do arquivo especificação (igual a b)
  • eu: Este modificador é aceito, mas não usado.
  • N: Usa o contar parâmetro. Isso é usado se houver várias entradas no arquivo com o mesmo nome. Extrair ou excluir instância contar do nome fornecido do arquivo.
  • o: Preserve o original datas dos membros ao extraí-los. Se você não especificar esse modificador, os arquivos extraídos do arquivo são marcados com a hora da extração.
  • P: Use o nome do caminho completo ao combinar nomes no arquivo. GNU ar não pode criar um arquivo com um nome de caminho completo, mas outros criadores de arquivo podem. Esta opção fará com que o GNU ar para combinar nomes de arquivo usando um nome de caminho completo, o que pode ser conveniente ao extrair um único arquivo de um arquivo criado por outra ferramenta.
  • s: Grava um índice de arquivo de objeto no arquivo ou atualiza um existente, mesmo que nenhuma outra alteração seja feita no arquivo. Você pode usar este sinalizador modificador com qualquer operação ou sozinho. Corrida ar s em um arquivo é equivalente a correr ranlib nele.
  • S: Não gere uma tabela de símbolos de arquivo. Essa configuração 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 construir uma tabela de símbolos, você deve omitir o S modificador na última execução de ar, ou você deve correr ranlib no arquivo.
  • você: Normalmente, ar r… insere todos os arquivos listados no arquivo. Se você gostaria de inserir aqueles dos arquivos que você lista que são mais novos do que os membros existentes com os mesmos nomes, use este modificador. O você modificador é permitido apenas para a operação r (substituir). Em particular, a combinação qu não é permitido, uma vez que verificar os carimbos de data / hora perderia qualquer vantagem de velocidade da operação q.
  • v: Este modificador solicita o prolixo versão de uma operação. Muitas operações exibem informações adicionais, como nomes de arquivos processados, quando o modificador v é anexado.
  • V: Este modificador mostra o número da versão de ar.

Use o homem comando (% homem) para ver como um comando é usado em seu computador específico.

Outras formas de arquivamento

O Linux oferece suporte a muitos métodos diferentes para arquivamento de arquivos. Por exemplo, os arquivos ZIP são multiplataforma. Apesar ar é útil para arquivos locais rápidos, considere formatos alternativos se você planeja compartilhar o arquivo com alguém que usa o Windows.