ar——建立或修改備存檔案,或是從備存檔案中抽取檔案

浅吟清风發表於2024-11-12

轉自於:https://github.com/jaywcjlove/linux-command,後不贅述

ar

建立或修改備存檔案,或是從備存檔案中抽取檔案

補充說明

ar命令 是一個建立或修改備存檔案,或是從備存檔案中抽取檔案的工具,ar可讓您集合許多檔案,成為單一的備存檔案。在備存檔案中,所有成員檔案皆保有原來的屬性與許可權

語法

用法: ar [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...
      ar -M [<mri-指令碼]

選項

以下內容來自 GNU ar (GNU Binutils) 2.40 版本指令

命令:
      d            - 從歸檔檔案中刪除檔案
      m[ab]        - 在歸檔檔案中移動檔案
      p            - 列印在歸檔檔案中找到的檔案
      q[f]         - 將檔案快速追加到歸檔檔案中
      r[ab][f][u]  - 替換歸檔檔案中已有的檔案或加入新檔案
      s            - 作為 ranlib 工作
      t[O][v]      - display contents of the archive
      x[o]         - 從歸檔檔案中分解檔案
特定命令修飾符:
      [a]          - 將檔案置於 [成員名] 之後
      [b]          - 將檔案置於 [成員名] 之前 (於 [i] 相同)
      [D]          - 將 0 用於時間戳和 uid/gid(預設)
      [D]          - 使用實際時間戳和 uid/gid
      [N]          - 使用名稱的例項 [數量]
      [f]          - 截去插入的檔名稱
      [P]          - 在匹配時使用完整的路徑名
      [o]          - 保留原來的日期
      [O]          - display offsets of files in the archive
      [u]          - 只替換比當前歸檔內容更新的檔案
通用修飾符:
      [c]          - 不在必須建立庫的時候給出警告
      [s]          - 建立歸檔索引 (cf. ranlib)
      [l <text> ]  - specify the dependencies of this library
      [S]          - 不要建立符號表
      [T]          - deprecated, use --thin instead
      [v]          - 輸出較多資訊
      [V]          - 顯示版本號
      @<file>       - 從 <file> 讀取選項
      --target=BFDNAME - 指定目標物件格式為 BFDNAME
      --output=DIRNAME - specify the output directory for extraction operations
      --record-libdeps=<text> - specify the dependencies of this library
      --thin       - make a thin archive
可選項:
      --plugin <p> - 載入指定的外掛程式
模擬選項:
      沒有模擬特有的選項

例項

打包檔案

[root@localhost ~]# ls   # 顯示當前目錄檔案   
a.c	b.c d.c   install.log	  qte
anaconda-ks.cfg c.c Desktop 

[root@localhost ~]# ar rv one.bak a.c b.c  # 打包 a.c b.c檔案 
ar: 正在建立 one.bak
a - a.c
a - b.c

打包多個檔案

[root@localhost ~]# ar rv two.bak *.c  // 打包以.c結尾的檔案  
ar: 正在建立 two.bak
a - a.c
a - b.c
a - c.c
a - d.c

顯示打包檔案的內容

[root@localhost ~]# ar t two.bak    
a.c
b.c
c.c
d.c

刪除打包檔案的成員檔案

[root@localhost ~]# ar d two.bak a.c b.c c.c  
[root@localhost ~]# ar t two.bak       
d.c

相關文章