Linux的5个最佳命令行归档工具 – 第1部分

在我們日常生活中,我們會在各種平台上遇到存檔文件,無論是 WindowsMac 還是 Linux。所有平台都有多個應用程序,可用於創建存檔文件以及解壓縮它們。當涉及在 Linux 平台上工作時,我們需要經常處理存檔文件。

Linux Command Line Archive Tools

在這篇文章中,我們將討論標準 Linux 發行版上可用的存檔工具,它們的功能,示例等。本文分為兩部分,每部分包含五個命令行存檔工具(即共 10個最佳命令行存檔工具)。

存檔文件是什麼?

存檔文件是由一個或多個計算機文件以及元數據組成的壓縮文件。

存檔的特點

  1. 數據壓縮
  2. 加密
  3. 文件連接
  4. 自動提取
  5. 自動安裝
  6. 源卷和媒體信息
  7. 文件分割
  8. 校驗和校驗和檢查
  9. 目錄結構信息
  10. 其他元數據(關於數據的數據)
  11. 錯誤發現

應用領域

  1. 存儲計算機文件系統以及元數據。
  2. 在本地傳輸文件時很有用。
  3. 在 Web 上傳輸文件時很有用。
  4. 軟件打包應用。

標準 Linux 發行版上有用的存檔應用程序如下:

1. tar命令

tar是標準的UNIX/Linux封存應用工具。在早期,它曾是一個磁帶封存程式,逐漸發展為通用封存套件,能夠處理各種類型的封存檔案。tar接受許多具有選項的封存過濾器。

tar選項

  1. -A:將tar檔案附加到現有封存檔案。
  2. -c:建立新的封存檔案。
  3. -d:比較封存與指定的檔案系統。
  4. -j:對封存檔案進行bzip。
  5. -r:將檔案附加到現有的封存檔案。
  6. -t:列出現有封存檔案的內容。
  7. -u:更新封存檔案。
  8. -x:從現有封存檔案中提取檔案。
  9. -z:對封存檔案進行gzip。
  10. –delete:從現有封存檔案中刪除檔案。
tar範例

建立一個tar封存檔案。

# tar -zcvf name_of_tar.tar.gz /path/to/folder

解壓縮一個tar封存檔案。

# tar -zxvf Name_of_tar_file.tar.gz

欲瞭解更詳細的範例,請閱讀Linux中的18個tar命令範例

shar命令

shar代表Shell存檔是一個shell腳本,執行它會創建文件。shar是一個自解壓存檔文件,是一個遺留的實用工具,需要Unix Bourne Shell來提取文件。shar的優點是純文本,但潛在危險,因為它會輸出一個可執行文件。

shar選項

  1. -o:將輸出保存到指定的存檔文件中。
  2. -l:限制輸出大小,如指定的選項,但不拆分。
  3. -L:限制輸出大小,如指定的選項,並拆分。
  4. -n:將要包含在shar文件標頭中的存檔名。
  5. -a:允許自動生成標頭。

注意:如果使用了‘-o‘選項,則需要‘-l‘或‘-L‘選項,如果使用了‘-a‘選項,則需要‘-n‘選項。

shar範例

創建一個shar存檔文件。

# shar file_name.extension > filename.shar

提取一個shar存檔文件。

# unshar file_name.shar

3. ar命令

ar是用於存檔的創建和操作實用工具,主要用於二進製對象文件庫。ar代表存檔,可用於為任何目的創建任何類型的存檔,但大多已被‘tar’取代,現今僅用於創建和更新靜態庫文件。

ar選項

  1. -d :從存檔中刪除模組。
  2. -m :將成員移到存檔中。
  3. -p :列印存檔中的指定成員。
  4. -q :快速附加。
  5. -r :將文件成員插入存檔中。
  6. -s :向存檔添加索引。
  7. -a :將新文件添加到現有存檔的成員中。
ar 實例

使用 ‘ar’ 工具創建一個靜態庫,名為 ‘libmath.a’,其中包含目標文件 ‘substraction’ 和 ‘division’。

# ar cr libmath.a substraction.o division.o

提取 ‘ar’ 存檔文件。

# ar x libmath.a

4. cpio

cpio 代表「複製進和複製出」。Cpio 是 Linux 的一個通用文件存檔工具。它被 紅帽 包管理器 (RPM) 積極使用,也用於 Linux 內核的 initramfs,同時也是 蘋果電腦的安裝程式 (pax) 中的重要存檔工具。

cpio 選項

  1. -0 :讀取由空字符終止而不是換行的文件名列表。
  2. -a :重置訪問時間。
  3. -A :附加。
  4. -b :互換。
  5. -d :創建目錄。
cpio 實例

創建一個 ‘cpio’ 存檔文件。

# cd tecmint
# ls

file1.o file2.o file3.o

# ls | cpio  -ov > /path/to/output_folder/obj.cpio

提取 cpio 存檔文件。

# cpio -idv < /path/to folder/obj.cpio

5. Gzip

gzip是標準且廣泛使用的文件壓縮和解壓縮工具。Gzip允許文件串接。使用gzip壓縮文件,將輸出tarball,格式為‘*.tar.gz‘或‘*.tgz‘。

gzip選項

  1. –stdout:在標準輸出上產生輸出。
  2. –to-stdout:在標準輸出上產生輸出。
  3. –decompress:解壓文件。
  4. –uncompress:解壓文件。
  5. -d:解壓文件。
  6. -f:強制壓縮/解壓縮。
gzip範例

創建一個‘gzip’彙檔。

# tar -cvzf name_of_archive.tar.gz /path/to/folder

解壓縮一個‘gzip’彙檔。

# gunzip file_name.tar.gz

上述命令必須跟隨以下命令。

# tar -xvf file_name.tar

注意:‘gzip’的架構和功能使其很難恢復損壞的‘gzipped tar archive’文件。建議對重要gzipped文件進行多次備份,保存在不同位置。

目前就介紹這些。我們將在下一篇文章中討論其他針對Linux提供的壓縮和解壓應用程序。請繼續關注並連接至Tecmint。請勿忘記在下方評論區提供寶貴的反饋。

Source:
https://www.tecmint.com/command-line-archive-tools-for-linux/