ar.1
AR(1)
AR(1)
FreeBSD General Commands Manual
AR(1)
ar
, ranlib
—
管理档案
ar
-d
[-T
] [-f
] [-j
] [-v
] [-z
] archive file ... ar
-m
[-T
] [-a
position-after] [-b
position-before] [-f
] [-i
position-before] [-j
] [-s
| -S
] [-z
] archive file ... ar
-p
[-T
] [-f
] [-v
] archive [file ...] ar
-q
[-T
] [-c
] [-D
] [-f
] [-s
| -S
] [-U
] [-v
] [-z
] archive file ... ar
-r
[-T
] [-a
position-after] [-b
position-before] [-c
] [-D
] [-f
] [-i
position-before] [-j
] [-s
| -S
] [-u
] [-U
] [-v
] [-z
] archive file ... ar
-s
[-j
] [-z
] archive ar
-t
[-f
] [-T
] [-v
] archive [file ...] ar
-x
[-C
] [-T
] [-f
] [-o
] [-u
] [-v
] archive [file ...] ar
-M
ranlib
[-D
] [-U
] archive ...
ar
实用程序创建并维护组合成档案的文件组。 创建存档后,可以向其中添加新文件,并且可以提取、删除或替换现有文件。
文件在存档中由它们的最后一个文件名组件命名,因此如果包含 “/” 的路径引用的文件被存档,它将由路径的最后一个组件命名。 同样,当将命令行中列出的路径与存档中存储的文件名匹配时,只会比较路径的最后一个组成部分。
ar
- 的正常使用是用于创建和维护适合与链接编辑器 ld(1) 一起使用的库,尽管它不限于此目的。 ar
实用程序可以创建和管理用于加速链接编辑操作的存档符号表(请参阅 ar(5) )。 如果存档中存在符号表,它将通过存档的后续操作保持最新。
ranlib
实用程序用于将存档符号表添加到现有存档。
ar
实用程序支持以下选项:
-a
member-after
当与选项 -m
一起使用时,此选项指定由参数 file ... 指定的归档成员移动到由参数 member-after 命名的归档成员之后。 当与选项 -r
一起使用时,此选项指定由参数 file ... 指定的文件添加到由参数 member-after 命名的存档成员之后。
-b
member-before
当与选项 -m
一起使用时,此选项指定由参数 file ... 指定的存档成员移动到由参数 member-before 命名的存档成员之前。 当与选项 -r
一起使用时,此选项指定由参数 file ...- 指定的文件添加到由参数 member-before 命名的存档成员之前。
使用 -r
和 -q
选项创建新存档时抑制打印的信息性消息。
防止提取的文件替换文件系统中的同名文件。
从参数 archive 指定的存档中删除参数 file ... 命名的成员。 存档的符号表(如果存在)将更新以反映存档的新内容。
当与 -r
或 -q
选项结合使用时,与 -s
选项不带其他选项一起使用时,或者当作为 ranlib
调用时,插入 0 而不是真正的 mtime、uid 和 gid 值和 0644 而不是来自命名成员的文件模式通过参数 file ... 这确保了当成员内容相同时,生成的存档上的校验和是可重现的。 默认情况下启用此选项。 如果在命令行上指定了多个 -D
和 -U
选项,则最后一个优先。
与选项 -T
同义。
-i
member-before
与选项 -b
同义。
此选项被接受但被忽略。
接受此选项是为了与 GNU ar(1) 兼容,但会被忽略。
在存档中移动由参数 file ... 指定的存档成员。 如果位置已由 -a
, -b
或 -i
选项之一指定,则成员将移动到指定位置之前或之后。 如果未指定位置,则将指定的成员移动到存档的末尾。 如果档案有符号表,则更新它以反映档案的新内容。
从标准输入读取和执行 MRI 图书馆员命令。 ar
实用程序可以理解的命令在 MRI 图书管理员命令 部分中进行了描述。
提取成员时保留成员的原始修改时间。
将由参数 file ... 命名的指定存档成员的内容写入标准输出。 如果未指定任何成员,则归档中所有文件的内容将按照它们在归档中出现的顺序写入。
将参数 file ... 指定的文件附加到参数 archive 指定的存档,而不检查文件是否已存在于存档中。 存档符号表将根据需要更新。 如果参数 archive 指定的文件不存在,将创建一个新的档案。
在参数 archive 指定的存档中替换(添加)参数 file ... 指定的文件,必要时创建存档。 替换现有成员不会更改存档中成员的顺序。 如果在参数文件中命名的 file ... 不存在,则存档中与该名称匹配的现有成员不会更改。 除非指定了定位选项 -a
, -b
或 -i
之一,否则新文件将添加到存档的末尾。 存档符号表(如果存在)将更新以反映存档的新状态。
将存档符号表(请参阅 ar(5) )添加到由参数 archive 指定的存档中。单独使用 -s
选项调用 ar
等效于调用 ranlib
。
不要生成存档符号表。
列出由参数 file ... 指定的文件,按它们在存档中出现的顺序排列,每行一个。 如果未指定文件,则列出存档中的所有文件。
命名存档成员时,仅使用存档成员名称或命令行文件名参数的前 15 个字符。
有条件地更新存档或提取成员。 当与 -r
选项一起使用时,如果由参数 file ... 命名的文件比它们的归档版本更新,它们将在归档中被替换。 当与 -x
选项一起使用时,参数 file ... 指定的成员仅在它们比文件系统中的相应文件更新时才会被提取。
与 -r
或 -q
选项结合使用时,插入真正的 mtime、uid 和 gid 以及来自参数文件命名的成员的文件模式值 file ... 。如果在命令上指定了多个 -D
和 -U
选项行,最后一个优先。
提供详细的输出。 当与 -d
, -m
, -q
或 -x
选项一起使用时, ar
给出正在执行的归档修改的逐个文件描述,它由三个空格分隔的字段组成:选项字母、破折号 “-” 和文件名。当与 -r
选项一起使用时, ar
显示如上的描述,但如果将文件添加到存档中,则首字母为 “a” ,如果文件替换存档中已有的文件,则为 “r” 。 当与 -p
选项一起使用时,包含在 “<” 和 “>” 字符中的文件名将写入标准输出,前面有一个换行符,后跟两个换行符。 命名文件的内容跟在文件名后面。 当与 -t
选项一起使用时, ar
显示八个空格分隔的字段:由 strmode(3) 显示的文件权限、由斜杠 ( “/”) 分隔的十进制用户和组 ID、以字节为单位的文件大小、文件修改 strftime(3) 格式 “%b %e %H:%M %Y” 的时间,以及文件名。
打印版本字符串并退出。
将参数 file ... 指定的存档成员提取到当前目录中。 如果未指定任何成员,则提取档案的所有成员。如果与提取的成员对应的文件不存在,则将创建该文件。 如果提取的成员对应的文件确实存在,则其所有者和组将不会更改,而其内容将被覆盖,并且其权限将设置为存档中输入的权限。 除非指定了 -o
选项,否则文件的访问和修改时间将与提取时间相同。
此选项被接受但被忽略。
如果指定了 -M
选项, ar
实用程序将从其标准输入读取并执行命令。 如果标准输入是终端, ar
实用程序将在读取一行之前显示提示 “AR >
” ,即使遇到错误也会继续操作。 如果标准输入不是终端, ar
实用程序将不会显示提示,并会在遇到错误时终止执行。
每个输入行包含一个命令。 输入行中的单词由空格字符分隔。 该行的第一个单词是命令,其余单词是命令的参数。 在任何一种情况下都可以指定命令字。 参数可以用逗号或空格分隔。
允许空行并被忽略。 长行以 “+
” 字符结束。
“*
” 和 “;
” 字符开始评论。 注释一直延伸到行尾。
执行 MRI 图书管理员脚本时, ar
实用程序在存档的临时副本上工作。 使用 save
命令对副本进行永久更改。
ar
实用程序可以理解的命令是:
addlib
archive | addlib
archive (member [, member]...)
将由参数 archive 命名的档案内容添加到当前档案中。 如果使用参数 member 命名特定成员,则将这些成员添加到当前存档中。 如果未指定任何成员,则将归档的全部内容添加到当前归档。
addmod
member [, member]...
将参数 member 命名的文件添加到当前存档。
丢弃当前存档的所有内容。
create
archive
创建一个由参数 archive 命名的新档案,并使其成为当前档案。 如果命名存档已存在,则在发出 save
命令时将覆盖它。
delete
module [, member]...
从当前存档中删除由参数 member 命名的模块。
directory
archive (member [, member]...) [outputfile]
列出存档中的每个命名模块。 输出的格式取决于使用 verbose
命令设置的详细程度设置。 输出被发送到标准输出,或由参数 outputfile 指定的文件。
从 ar
实用程序成功退出。 对当前存档的任何未保存的更改都将被丢弃。
extract
member [, member]...
从当前存档中提取由参数 member 命名的成员。
以详细样式显示当前存档的内容。
open
archive
打开由参数 archive 命名的档案并将其设为当前档案。
replace
member [, member]...
将当前存档中的命名成员替换为参数 member 指定的文件。 文件必须存在于当前目录中,并且命名模块必须已经存在于当前存档中。
提交对当前存档的所有更改。
切换 directory
命令的详细程度。
要创建一个包含三个文件 ex1.o, ex2.o 和 ex3.o 的新存档 ex.a ,请使用:
ar -rc ex.a ex1.o ex2.o ex3.o
要将存档符号表添加到现有存档 ex.a, 请使用:
ar -s ex.a
要从档案 ex.a 中删除文件 ex1.o , 请使用:
ar -d ex.a ex1.o
要详细列出档案 ex.a 的内容, 请使用:
ar -tv ex.a
要使用 MRI 图书管理员命令创建包含文件 ex1.o 和 ex2.o 的新存档 ex.a ,请使用以下脚本:
create ex.a * specify the output archive addmod ex1.o ex2.o * add modules save * save pending changes end * exit the utility
The ar
utility exits 0 on success, and >0 if an error occurs.
ld(1), archive(3), elf(3), strftime(3), strmode(3), ar(5)
ar
实用程序支持 -a
, -b
, -c
, -i
, -m
, -p
, -q
, -r
, -s
, -t
, -u
, -v
, -C
和 -T
选项符合 IEEE Std 1003.2 (“POSIX.2”) 。
ar
命令首次出现在 AT&T UNIX 版本 1 中。在 FreeBSD 8.0 中, Kai Wang <kaiw@FreeBSD.org> 使用 Streaming Archive Library (libarchive, -larchive) 和 ELF Access Library (libelf, -lelf) 重新实现了 ar
和 ranlib
。
June 16, 2016
FreeBSD 13.1-RELEASE
最后更新于
这有帮助吗?