如何從Linux上的.tar.gz或.tar.bz2文件中提取文件

Tar文件是壓縮檔案。在使用像Ubuntu這樣的Linux發行版時,甚至在使用macOS上的終端時,你會經常遇到它們。以下是如何提取或解壓縮tar文件的內容,也稱為tarball。

.tar.gz和.tar.bz2是什麼意思?

有文件的 名為.tar.gz 或者a .tar.bz2格式 擴展名是壓縮存檔文件。只有一個文件 。柏油 擴展是未壓縮的,但這些將是非常罕見的。

。柏油 文件擴展名的一部分代表 ŤARchive,這就是這兩種文件類型都被稱為tar文件的原因。 Tar文件的日期一直追溯到1979年的時候 柏油 創建命令以允許系統管理員將文件存檔到磁帶上。四十年後,我們仍在使用 柏油 命令將tar文件解壓縮到我們的硬盤上。某個人可能仍在使用 柏油 用膠帶。

。廣州 要麼 操作.bz2 擴展名後綴表示已使用以下任一方式壓縮存檔 gzip的 要麼 bzip2的 壓縮算法。該 柏油 命令將與兩種類型的文件一起愉快地工作,因此使用哪種壓縮方法並不重要 – 並且它應該在您擁有Bash shell的任何地方都可用。你只需要使用適當的 柏油 命令行選項。

從Tar文件中提取文件

假設你已經下載了兩個樂譜文件。調用一個文件 ukulele_songs.tar.gz ,另一個被稱為 guitar_songs.tar.bz2。這些文件位於Downloads目錄中。

下載目錄中有兩個tar文件

讓我們提取尤克里里琴歌曲:

tar -xvzf ukulele_songs.tar.gz

提取文件時,它們將在終端窗口中列出。

從tar文件中提取所有文件

我們使用的命令行選項是:

  • -X:解壓縮,從tar文件中檢索文件。
  • -v:詳細,列出提取時的文件。
  • -z:Gzip,使用gzip解壓縮tar文件。
  • -F:File,我們想要的tar文件的名稱 柏油 跟…共事。此選項後面必須跟有tar文件的名稱。

列出目錄中的文件 LS 你會看到一個名為Ukulele Songs的目錄。提取的文件位於該目錄中。這個目錄來自哪裡?它包含在 柏油 文件,並與文件一起提取。

在下載目錄中創建的Ukulele Songs目錄

現在讓我們提取吉他歌曲。要做到這一點,我們將使用幾乎完全相同的命令,但有一個重要的區別。該 操作.bz2 擴展名後綴告訴我們它已經使用bzip2命令進行了壓縮。而不是使用-z (gzip)選項,我們將使用 -j (bzip2)選項。

tar -xvjf guitar_songs.tar.bz2

在Downloads文件夾中提取吉他歌曲tar文件

再一次,文件在提取時列在終端中。要清楚,我們使用的命令行選項 柏油 為了 .tar.bz2格式 文件是:

  • -X:解壓縮,從tar文件中檢索文件。
  • -v:詳細,列出提取時的文件。
  • -j:Bzip2,使用bzip2解壓縮tar文件。
  • -F:文件,我們希望tar使用的tar文件的名稱。

如果我們列出下載目錄中的文件,我們將看到另一個名為Guitar Songs的目錄已經創建。

下載目錄中創建的吉他歌曲目錄

選擇將文件解壓縮到的位置

如果我們想要將文件解壓縮到當前目錄以外的位置,我們可以使用指定目標目錄 -C (指定目錄)選項。

tar -xvjf guitar_songs.tar.gz -C~ / Documents / Songs /

查看我們的Documents / Songs目錄,我們將看到Guitar Songs目錄已創建。

在Documents / Songs目錄中創建的Guitar songs目錄

請注意,目標目錄必須已存在, 柏油 如果它不存在,將不會創建它。如果您需要創建一個目錄並擁有 柏油 在一個命令中將文件解壓縮到一起,您可以按如下方式執行:

mkdir -p~ / Documents / Songs / Downloaded && tar -xvjf guitar_songs.tar.gz -C~ / Documents / Songs / Downloaded /

-p (父母)選擇原因 MKDIR 創建所需的任何父目錄,確保創建目標目錄。

在提取他們之前看裡面tar文件

到目前為止,我們剛剛實現了信仰的飛躍並提取了看不見的文件。你可能想在跳躍之前先看看。你可以查看一個的內容 柏油 在使用之前提取它之前的文件 -t (列表)選項。通過管道輸出通常很方便 命令。

tar -tf ukulele_songs.tar.gz |減

請注意,我們不需要使用 -z 列出文件的選項。我們只需要添加 -z 當我們從a中提取文件時的選項 名為.tar.gz 文件。同樣,我們不需要 -j 列出文件的選項 TAR.BZ2 文件。

tar文件的內容通過少量傳輸

滾動輸出我們可以看到tar文件中的所有內容都保存在名為Ukulele Songs的目錄中,並且在該目錄中,有文件和其他目錄。

tar文件內容的第二個視圖通過較少的管道傳輸

我們可以看到Ukulele Songs目錄包含名為Random Songs,Ramones和Possibles的目錄。

要從tar文件中的目錄中提取所有文件,請使用以下命令。請注意,路徑包含在引號中,因為路徑中有空格。

tar -xvzf ukulele_songs.tar.gz“尤克里里歌曲/ Ramones /”

從tar文件中提取單個文件夾

要提取單個文件,請提供文件的路徑和名稱。

tar -xvzf ukulele_songs.tar.gz“Ukulele Songs / 023 – My Babe.odt”

從tar文件中提取單個文件

您可以使用通配符提取一系列文件,其中 * 代表任何字符串和 代表任何單個字符。使用通配符需要使用 --wildcards 選項。

tar -xvz –wildcards -f ukulele_songs.tar.gz“尤克里里歌曲/可能/ B *”

用通配符從tar中提取歌曲

在不提取目錄的情況下提取文件

如果您不希望在硬盤驅動器上重新創建tar文件中的目錄結構,請使用 --strip組件 選項。該 --strip組件 選項需要數字參數。該數字表示要忽略的目錄級別。仍然會提取已忽略目錄中的文件,但不會在硬盤驅動器上複製目錄結構。

如果我們指定 --strip成分= 1 使用我們的示例tar文件,tar文件中的Ukulele Songs最頂層目錄不會在硬盤驅動器上創建。將提取到該目錄的文件和目錄在目標目錄中提取。

tar -xvzf ukulele_songs.tar.gz –strip-components = 1

使用--strip-components = 1從tar文件中提取文件

在我們的示例tar文件中只有兩級目錄嵌套。所以,如果我們使用 --strip成分= 2,所有文件都在目標目錄中提取,並且不會創建其他目錄。

tar -xvzf ukulele_songs.tar.gz –strip-components = 2

使用--strip-components = 2從tar文件中提取文件

如果你看一下Linux手冊頁,你會看到它 柏油 必須成為“具有最多命令行選項的命令”標題的良好候選者。值得慶幸的是,允許我們從中提取文件 名為.tar.gzTAR.BZ2 具有良好粒度控制的文件,我們只需要記住一些這些選項。

本文機器自動生成,不保證語句完整通順和表達準確,亦不對內容真實有效性負責,請讀者知悉。