Daily Command--ar

功能说明:

建立或修改档案文件(archive),或是从档案文件中提取文件

 

语法:

ar[-dmpqrtx][cfosSuvV][a<成员文件>][b<成员文件>][i<成员文件>][档案文件][成员文件]

 

包名称:

binutils

 

补充说明:

ar可以集合许多文件(成员文件),称为单一的档案文件。在档案文件中,所有成员文件都保留原来的属性与权限。ar也可以为档案文件建立符号表(Symbol table),功能如同文件的索引,以便直接调用档案文件中的成员文件。

第一类参数([-dmpqrtx])是命令参数,指定ar要执行的工作。

第二类参数([abcfiosSuvV])为可选参数,用来指定工作的选项。

 

参数:

 

命令参数

-d

删除档案文件中的成员文件

-m

变更成员文件在档案文件中的次序。如果没指定第2个参数,则-m参数会将指定的成员文件移动到档案文件的最后面

-p

显示档案文件中的成员文件的额、内容。如果没有指定[成员文件]参数,则显示档案文件中全部成员成员文件的内容。

-q

将文件附加在档案文件末尾,不用检查档案文件中是否有重复的成员文件

-r

将文件插入档案文件中。若文件重复,则取代原有的成员文件

-t

显示档案文件中所包含的文件

-x

自档案文件中取出成员文件(档案文件中仍留有该成员文件)

 

可选包参数

a<成员文件>

将文件插入档案文件中指定的成员文件之后

b<成员文件>

将文件插入档案文件中指定的成员文件之前

c

建立档案文件

f

为避免过长的文件名不兼容于其他系统的ar命令,因此可利用此参数,截掉要放入档案文件中过长的成员文件名称

i<成员文件>

将文件插入档案文件中指定的成员文件之前(与b的作用相同)

o

保留档案文件中文件的日期。若不设置此参数,文件自档案文件中抽取出来时,文件日期将更改为现在的日期

s

若档案文件中包含对象模块,可利用此参数建立档案文件的符号表。档案文件建好符号表后,其他程序便可调用档案文件中的对象

S

不产生符号表。若档案文件很庞大时,可利用此参数加快程序的执行速度

u

只将日期较新的文件插入档案文件中

v

程序执行时显示详细的信息

V

显示版本信息

 

 

范例:

  1. 生成档案文件,并列出其包含的内容

root@EricZhou:~/sda2/test# ls

file1  file2  file3  file4

root@EricZhou:~/sda2/test# ar -rv arfile file1 file2 file3 file4      ----生成档案文件arfile

ar: creating arfile

a - file1

a - file2

a - file3

a - file4

root@EricZhou:~/sda2/test# ar -t arfile          ----列出档案文件所包含的内容

file1

file2

file3

file4

root@EricZhou:~/sda2/test#

  1. 列出档案文件中所有成员文件的内容:

root@EricZhou:~/sda2/test# ar -p arfile

Welcome,here is file1.

Welcome,here is file2.

Welcome,here is file3.

Welcome,here is file4.

root@EricZhou:~/sda2/test#

  1. 以较详细的方式列出档案文件arfile的内容

root@EricZhou:~/sda2/test# ar -pv arfile

 

<file1>

 

Welcome,here is file1.

 

<file2>

 

Welcome,here is file2.

 

<file3>

 

Welcome,here is file3.

 

<file4>

 

Welcome,here is file4.

root@EricZhou:~/sda2/test#

  1. 列出档案文件中某个成员文件的内容

root@EricZhou:~/sda2/test# ar -p arfile file1

Welcome,here is file1.

root@EricZhou:~/sda2/test#

  1. 将newfile加入档案文件中file2之前

root@EricZhou:~/sda2/test# ar -rbv file2 arfile newfile

a - newfile

root@EricZhou:~/sda2/test# ar -t arfile

file1

newfile

file2

file3

file4

root@EricZhou:~/sda2/test#

  1. 将newfile移动到档案文件最后面

root@EricZhou:~/sda2/test# ar -mv arfile  newfile

m - newfile

root@EricZhou:~/sda2/test# ar -t arfile

file1

file2

file3

file4

newfile

root@EricZhou:~/sda2/test#

  1. 将档案文件中的newfile重新移动到file2文件之前

root@EricZhou:~/sda2/test# ar -mbv file2 arfile newfile

m - newfile

root@EricZhou:~/sda2/test# ar -t arfile

file1

newfile

file2

file3

file4

root@EricZhou:~/sda2/test#

  1. 将档案文件中的newfile移动到file2文件之后

root@EricZhou:~/sda2/test# ar -mav file2 arfile  newfile

m - newfile

root@EricZhou:~/sda2/test# ar -t arfile

file1

file2

newfile

file3

file4

root@EricZhou:~/sda2/test#

  1. 取出档案文件中的newfile,但仍保留这个文件在档案文件中

root@EricZhou:~/sda2/test# ar -xv arfile  newfile

x - newfile

root@EricZhou:~/sda2/test# ar -t arfile

file1

file2

newfile

file3

file4

root@EricZhou:~/sda2/test# ls -l newfile

-rw-r--r-- 1 root root 25 2013-03-08 09:44 newfile(时间为取出时间)

root@EricZhou:~/sda2/test#

  1. 取出档案文件中的newfile,保留取出文件的更改时间

root@EricZhou:~/sda2/test# ar -xov arfile newfile

x - newfile

root@EricZhou:~/sda2/test# ar -t arfile

file1

file2

newfile

file3

file4

root@EricZhou:~/sda2/test# ls -l newfile

-rw-r--r-- 1 root root 25 2013-03-08 09:17 newfile(时间为原本在文件中的时间)

root@EricZhou:~/sda2/test#

  1. 删除档案文件中的newfile

root@EricZhou:~/sda2/test# ar -dv arfile newfile

d - newfile

root@EricZhou:~/sda2/test# ar -t newfile

ar: newfile: File format not recognized

root@EricZhou:~/sda2/test# ar -t arfile

file1

file2

file3

file4

root@EricZhou:~/sda2/test#

  1. 将file2加入到档案文件中,不用检查是否有重复的成员文件

root@EricZhou:~/sda2/test# ar -qv arfile  file2

a - file2

root@EricZhou:~/sda2/test# ar -t arfile

file1

file2

file3

file4

file2

root@EricZhou:~/sda2/test#

你可能感兴趣的:(command)