了解Linux命令:Ar

“ar”命令用于创建、修改和从存档中提取文件

GNU基于“增大化现实”技术程序创建,从文件归档中修改和提取项。一个存档单个文件是否持有其他文件的集合文件在一个结构中,可以检索原始的单个文件(称为成员档案)。

概述

Linux ar命令

原始文件的内容、模式(权限)、时间戳、所有者和组保存在存档中,并可以在提取时恢复。

GNU基于“增大化现实”技术可以维护成员具有任意长度名称的档案;然而,这取决于如何基于“增大化现实”技术如果在您的系统上配置了成员名,则可能会对成员名长度施加限制,以与使用其他工具维护的存档格式兼容。如果存在,限制通常是15个字符。

基于“增大化现实”技术被认为是二进制实用程序,因为这种类型的存档最常被用作保存通常需要的子程序。

基于“增大化现实”技术在指定修饰符时,为存档中可重定位对象模块中定义的符号创建索引年代.一旦创建,该索引将在存档中随时更新基于“增大化现实”技术对其内容进行更改(保存为更新操作)。具有这种索引的存档加快了到库的链接,并允许库中的例程相互调用,而不考虑它们在存档中的位置。

你可以使用nm - snm - print-armap列出此索引表。如果存档缺少表,则另一种形式的基于“增大化现实”技术被称为ranlib只添加表。

GNU基于“增大化现实”技术被设计为与两种不同的设施兼容。使用命令行选项控制其活动,例如基于“增大化现实”技术Unix系统;或者,如果你指定单个命令流程的选择- m,您可以使用标准输入提供的脚本来控制它。

剧情简介

该命令的一般形式如下:

基于“增大化现实”技术[-X32_64] [-] p[国防部[relpos][数]]档案[…]成员

选项

GNU基于“增大化现实”技术允许您混合操作代码p和修饰符标志国防部以任何顺序,在第一个命令行参数内。

如果愿意,可以在第一个命令行参数开始使用破折号。

p关键字指定要执行的操作;它可以是以下任何一个,但您必须只指定其中一个:

  • d删除来自存档的模块。指定要删除的模块名称为成员;如果您指定没有要删除的文件,则存档将保持不变。如果您指定v修饰符,基于“增大化现实”技术列出已删除的每个模块。
  • :通过该操作移动存档中的成员。如果一个符号定义在多个成员中,那么存档中成员的顺序会影响使用库链接程序的方式。如果没有使用修饰词with中指定的任何成员成员参数被移动到结束档案;您可以使用一个b,或修饰符来将它们移动到指定的位置。
  • p打印指定的存档成员,发送到标准输出文件。如果v修饰符,则在将其内容复制到标准输出之前显示成员名。如果你指定no成员参数,则打印存档中的所有文件。
  • 快速添加;从历史上看,添加文件成员直到最后存档,没有检查更换。的修饰符一个b,影响此操作;新成员总是放在存档的末尾。修饰符v使基于“增大化现实”技术列出每个附加文件。由于此操作的重点是速度,因此存档的符号表索引不会更新,即使它已经存在;你可以使用基于“增大化现实”技术的年代ranlib显式地更新符号表索引。然而,太多不同的系统都假设快速追加会重建索引,所以GNU ar实现了“q”作为“r”的同义词。
  • r:插入文件成员存档(与更换).此操作不同于其中,任何以前存在的成员,如果他们的名字与被添加的名字匹配,就会被删除。如果其中一个文件被命名为成员不存在,基于“增大化现实”技术显示错误消息,并保持与该名称匹配的存档的任何现有成员不受干扰。默认情况下,新成员添加在文件的末尾,但您可以使用其中一个修饰符一个b,或要求与现有成员相对的位置。修饰符v与此操作一起使用将为插入的每个文件引出一行输出,以及其中的一个字母一个r指示文件是被追加(没有删除旧成员)还是被替换。
  • t:显示表格列出存档,或中所列的文件成员这些都在档案中。通常只显示成员名;如果还想查看模式(权限)、时间戳、所有者、组和大小,还可以通过指定v修饰符。如果没有指定成员,将列出存档中的所有文件。如果有多个相同名称的文件(例如,5)在一个档案中本科),Ar t b.a fie只列出第一个实例;要查看所有这些,您必须请求一个完整的列表—在我们的示例中,Ar t b.a
  • x:提取成员(姓名成员)。使用v修饰符来请求基于“增大化现实”技术列出它提取的每个名称。如果没有指定成员时,会提取存档中的所有文件。

的后面可能紧跟着几个修饰语p关键字,用于指定操作行为的变化:

  • 一个:添加新文件存档的现有成员。如果你使用修饰语一个时,现有存档成员的名称必须显示为relpos参数,在存档规范。
  • b:添加新文件之前存档的现有成员。如果你使用修饰语b时,现有存档成员的名称必须显示为relpos参数,在存档规格(同).
  • c:创建存档。当您请求更新时,如果指定的存档不存在,则始终创建该存档。但是,除非您事先指定希望通过使用此修饰符创建它,否则将发出警告。
  • f:截断归档文件中的名称。GNU基于“增大化现实”技术通常将允许任何长度的文件名,迫使它创建与基于“增大化现实”技术在一些系统上编程。如果兼容性是一个问题,那么f修饰符可用于在将文件名放入存档中时截断文件名。
  • :插入新文件之前存档的现有成员。如果你使用修饰语时,现有存档成员的名称必须显示为relpos参数,在存档规格(同b).
  • l:这个修饰语被接受但不被使用。
  • N:使用参数。如果存档中有多个具有相同名称的条目,则使用此选项。提取或删除实例档案中给定的名字。
  • o:保存原始提取成员时的日期。如果不指定此修饰符,则从存档中提取的文件将标记提取时间。
  • P:匹配归档文件中的名称时使用全路径名。GNU基于“增大化现实”技术无法创建具有完整路径名的存档,但其他存档创建者可以。这个选项将导致GNU基于“增大化现实”技术使用完整的路径名来匹配文件名,这在从另一个工具创建的存档中提取单个文件时非常方便。
  • 年代:将一个对象文件索引写入存档,或更新一个现有的索引,即使没有对存档进行其他更改。你可以在任何操作中使用这个修饰符标志,也可以单独使用。运行基于“增大化现实”技术的年代在存档上运行相当于运行ranlib在上面。
  • 年代:不生成归档符号表。这个设置可以在几个步骤中加快构建大型库的速度。生成的存档不能与链接器一起使用。为了构建符号表,必须省略年代修饰符的最后一次执行基于“增大化现实”技术,否则你必须逃跑ranlib关于存档。
  • u:正常情况下,基于“增大化现实”技术r…将列出的所有文件插入存档。如果你想插入只有所列出的文件中,如果比同名的现有成员更新,则使用此修饰符。的u修饰符只允许用于操作r(替换)。特别是组合是不允许的,因为检查时间戳将失去任何速度优势的操作
  • v:该修饰符请求详细的操作的版本。许多操作显示额外的信息,如文件名处理,当修饰符v是附加的。
  • V的版本号基于“增大化现实”技术

使用男人。命令(%的人),以了解在特定电脑上如何使用某个命令。

其他形式的存档

Linux支持许多不同的文件归档方法。例如,ZIP文件是跨平台的。虽然基于“增大化现实”技术有助于快速生成本地存档,如果您计划与使用Windows的人共享存档,请考虑其他格式。

这个页面有用吗?