如何在 Linux 中開啟 .gz 和 .tgz 文件

解壓縮文件,尤其是在 Linux 環境中,是一項例行任務。隨著 .gz 和 .tgz 文件的頻繁使用,了解這些文件類型的細微差別以及用於管理它們的工具至關重要。本指南將深入探討 GZ 和 TGZ 檔案的世界,提供如何有效處理它們的見解和逐步說明。

了解 Linux 中的檔案壓縮

文件壓縮對於優化儲存和確保高效的資料傳輸至關重要。在 Linux 中,這是透過使用各種工具和文件格式來實現的,每種工具和文件格式都具有獨特的特徵。

TAR、GZ 和 TGZ 檔案有何獨特之處?

  • TAR 檔案解釋
    • TAR 代表磁帶存檔。它的主要功能是將多個檔案捆綁到一個稱為 TAR 檔案的實體中。有趣的是,TAR 並沒有壓縮這些檔案;而是壓縮這些檔案。它只是將它們分組,確保它們的原始大小保持不變。
  • 深入 GZ 文件
    • GZ 檔案由 Gzip 壓縮工具產生。與 TAR 不同,Gzip 會壓縮文件,從而減少其大小。然而,值得注意的是 Gzip 壓縮單一檔案。因此,如果您有多個文件,Gzip 將產生同等數量的 GZ 文件。這種壓縮方法是 Linux 和 Unix 系統中的主要方法。
  • 融合:TAR.GZ 文件
    • TAR.GZ 檔案本質上是使用 Gzip 壓縮的 TAR 檔案。它是一種混合體,結合了 TAR 的分組功能和 Gzip 的壓縮能力。這種檔案類型主要出現在 Linux 和 Unix 系統中。
  • TGZ:TAR.GZ 的同義字
    • TAR.GZ 檔案通常稱為 TGZ 檔案。它們本質上是相同的,只是為了方便命名不同。
  • ZIP 檔案:快速概述
    • ZIP 檔案與 TAR 一樣,會捆綁多個檔案。然而,他們也壓縮這些文件,類似 GZ。雖然 ZIP 檔案在各種作業系統中普遍存在,但它們最常與 Windows 相關。

Tarball 或 Tarfile:名稱有什麼意義?

術語 tarball 或 tarfile 通俗地用來描述特定 TAR 格式的存檔檔案:

  • 焦油文件:本質上是一個磁帶存檔檔案。
  • TAR.GZ 或 TGZ 文件:這是 TAR 檔案經過 Gzip 壓縮時的情況。
  • TAR.BZ2 或 TBZ 文件:當對 TAR 檔案套用 Bzip2 壓縮時,就會出現這種格式。

tarball 本質上是捆綁在一起的文件的集合。 tar 指令產生這些檔案。雖然 tar 本身並不支援壓縮,但它通常與 Gzip 或 Bzip2 等壓縮工具配合使用以節省磁碟空間。這些實用程式通常會壓縮單一文件,因此它們與 tar 協同作用以從多個文件產生單一文件。

Linux 中 GZ 和 TGZ 檔案的 Tar 和 Gzip/Gunzip

服用壓縮包 是 Linux 生態系統中的中堅力量,以其檔案歸檔和壓縮功能而聞名。雖然它們經常協同工作,但它們有不同的目的:

  • Tar 實用程式的作用
    • 服用 將多個檔案合併為一個存檔,通常稱為 tarball。此檔案保留封裝檔案的檔案系統屬性,例如權限和所有權。創建後,用戶仍然可以修改存檔,新增或刪除檔案或調整檔案名,除非它被壓縮。這 tar 命令是在 Linux 中管理 TAR 和 TAR.GZ 檔案的首選工具,有助於它們的建立、修改和提取。
    • 從歷史上看,tarball 是首選的備份介質,傳輸到本地磁帶驅動器,因此得名 Tape Archive (Tar)。雖然 Tar 不壓縮文件,但現代使用總是涉及壓縮以節省磁碟空間並促進系統間傳輸。
    • Tar 用途廣泛,支援多種壓縮方法。 Gzip/Gunzip 和 Bzip2/Bunzip2 實用程式佔據主導地位,Tar-Gzip 聯盟逐漸成為 Linux 的首要檔案歸檔解決方案。
  • Linux 中的 Gzip
    • 壓縮包 是 Linux 首要的檔案壓縮實用程式。它可以獨立運行,壓縮單一檔案。當 Gzip 壓縮檔案時,它會產生一個新的壓縮變體,而原始檔案通常會被丟棄。產生的壓縮檔案沒有 GZ 副檔名。因此,當 Gzip 與 Tar 協作時,壓縮檔案採用 TAR.GZ 或 TGZ 副檔名。
    • Gzip 與 Zip:雖然 Gzip 採用與著名的 Windows 實用程式 Zip 相同的壓縮演算法,但存在根本差異。 Gzip 壓縮單一檔案。因此,首先呼叫 Tar 來產生 tarball,然後由 Gzip 進行壓縮。相反,Zip 在歸檔每個檔案之前對其進行壓縮,從而導致歸檔大小稍大一些。這種壓縮方法使單一檔案的提取變得複雜,而無需先解壓縮整個 tarball。

在 Linux 中建立和解壓縮 GZ 和 TGZ 文件

使用Tar和Gzip/Gunzip指令,系統管理員可以輕鬆建立和解壓縮GZ和TGZ檔案。與 Linux 實用程式類似,這些實用程式包含各種標誌,可增強其功能並允許自訂使用。由於 Gzip/Gunzip 和 Tar 是大多數 Linux 發行版不可或缺的一部分,因此所需的只是 SSH 存取和基本的 Linux 命令列知識。

利用 Gzip 和 Gunzip 進行 .gz 檔案管理

雖然 Gzip 和 Gunzip 命令可以在 Linux 中解壓縮 GZ 文件,但在面對壓縮的 Tar 檔案時它們會猶豫不決。例如,TAR.GZ 檔案儘管是 Gzip 壓縮的 TAR 存檔,但仍需要使用 Tar 指令進行解壓縮和檔案擷取。

使用 Gzip 壓縮文件

Gzip 有助於壓縮單一文件,產生新的 GZ 擴充變體,同時保留原始檔案的權限和所有權。預設情況下,原始檔案在壓縮後被丟棄。然而,這種行為是可變的。

讓我們來探索一下使用 Gzip 壓縮目前目錄中的三個檔案:

# Compress multiple files with GZIP
gzip -kv example1 example2 example3

這裡,-k 標誌確保原始檔案保持完整,而 -v 選項提供即時壓縮百分比和檔案名稱顯示。這個指令在目錄中產生三個新的 GZ 檔案。在 -k 標誌不適用的情況下,可以呼叫 -c 選項來保留原始檔案。

也可以利用 -c 標誌來修改新壓縮檔案的目錄,甚至重新命名它:

# Compress a file without deletion and relocate it to a different directory
gzip -c example1 > /home/temp/compressed_example1.gz

不解壓縮檢查GZ文件

Linux 中的 zcat 指令無需解壓縮即可預覽壓縮檔案的內容:

# Display the contents of a GZIP compressed file
zcat compressed_example1.gz

解壓縮GZ文件

透過將 -d 標誌附加到 Gzip/Gunzip 指令,可以在 Linux 中解壓縮 GZ 檔案。所有先前討論的標誌仍然適用。預設情況下,除非呼叫 -k 標誌,否則 GZ 檔案在解壓縮後將被丟棄。讓我們解壓縮之前在同一目錄中壓縮的 GZ 檔案:

# Decompress GZ file
gzip -dv compressed_example1.gz

在這種情況下,以下命令是同義詞:

使用gunzip指令:

# Decompress GZ file
gunzip example.gz

使用 gzip -d 指令:

# Decompress GZ file
gzip -d example.gz

使用 Tar 進行 TGZ 文件管理

tar 指令對於在 Linux 中管理 TGZ 檔案至關重要。使用者可以解壓縮整個檔案或挑選特定的檔案或目錄。

創建 tar.gz 存檔

在建立 Gzip 壓縮的 Tar 檔案之前,確定要包含的檔案並決定其分組策略。您可以手動選擇檔案或歸檔整個目錄及其子目錄。與對單一檔案進行操作的 Gzip 不同,建立 Gzip 壓縮的 Tar 檔案不會刪除原始檔案。

# Construct a TGZ archive of a directory and relocate it to a different folder
tar -czvf archive.tar.gz directory_name -C /home/temp

在此命令中:

  • c 啟動檔案創建。
  • z 觸發 Gzip 壓縮。
  • v 啟動詳細模式,提供詳細的命令執行輸出。
  • f 指定新存檔的檔案名稱。
  • C 指定備用目標目錄。

檢查存檔內容

-t 標誌有助於檢查現有 TGZ 歸檔文件的內容。此外,使用者可以使用管道來找出特定文件,尤其是在龐大的檔案中:

# Enumerate the contents of a TGZ archive
tar -tvf archive.tar.gz

解壓縮 tar.gz 文件

Gzip 壓縮的 Tar 檔案可以使用 tar 指令提供的 -x(提取)標誌來解壓縮。預設情況下,Tar 會提取 TGZ 檔案的內容並將其傳送到目前工作目錄。但是,使用者可以指定一個備用目錄進行提取:

# Decompress Tar Gz file and relocate uncompressed files to a different directory
tar -xzvf archive.tar.gz -C /home/temp

通常,使用者可能需要從 TGZ 檔案中提取特定檔案或資料夾。這 tar 命令有助於此:

# Validate the desired file's presence in the archive
tar -tvf archive.tar.gz | grep desired_file

由於檔案駐留在存檔目錄中,因此在不恢復整個目錄的情況下直接提取是具有挑戰性的。 strip-components 選項繞過了這個障礙,允許使用者提取所需的檔案或目錄,而無需其父資料夾。使用者必須指定要提取的檔案或目錄的完整路徑:

# Extract a specific file from the Tar Gz archive
tar -xzvf archive.tar.gz path/to/desired_file --strip-components=2

結論

管理 GZ 和 TGZ 檔案是 Linux 用戶的必備技能。這些檔案格式對於 Linux 生態系統中的資料壓縮和歸檔至關重要。透過掌握Gzip和Tar指令,使用者可以有效地管理、壓縮和解壓縮數據,確保最佳的儲存和資料傳輸。無論您是經驗豐富的 Linux 用戶還是新手,了解這些命令及其細微差別都可以顯著簡化您的任務並增強您的 Linux 體驗。

Joshua James
跟我來
Joshua James 的最新帖子 (看全部)

發佈留言