Tar檔案是壓縮檔案。在使用像Ubuntu這樣的Linux發行版時,甚至在macOS上使用終端時,您會經常遇到它們。下面介紹如何提取或解壓tar檔案(也稱為tarball)的內容。
檔案有一個。焦油.gz或者一個。焦油bz2副檔名是壓縮的存檔檔案。只有.tar副檔名的檔案是未壓縮的,但這種情況非常少見。
副檔名的.tar部分代表磁帶存檔,這也是這兩種檔案型別都稱為tar檔案的原因。Tar檔案可以追溯到1979年,當時建立了Tar命令,允許系統管理員將檔案歸檔到磁帶上。四十年後,我們仍然使用tar命令將tar檔案提取到硬碟上。某處可能有人還在用焦油膠帶。
.gz或.bz2擴充套件字尾表示已使用gzip或bzip2壓縮演算法壓縮存檔。tar命令可以很好地處理這兩種型別的檔案,所以不管使用哪種壓縮方法,只要有bashshell,它都應該是可用的。您只需要使用適當的tar命令列選項。
假設你下載了兩個樂譜檔案。其中一個檔案稱為四絃琴_歌曲.tar.gz另一種叫吉他_歌曲.tar.bz2. 這些檔案在下載目錄中。
讓我們摘錄四絃琴的歌曲:
tar -xvzf ukulele_songs.tar.gz在提取檔案時,它們將列在終端視窗中。
我們使用的命令列選項有:
用ls列出目錄中的檔案,你會看到已經建立了一個名為Ukulele Songs的目錄。提取的檔案在該目錄中。這個目錄是從哪裡來的?它包含在tar檔案中,並與檔案一起提取。
現在讓我們提取吉他歌曲。為此,我們將使用與以前幾乎完全相同的命令,但有一個重要的區別。.bz2副檔名字尾告訴我們它是使用bzip2命令壓縮的。我們不使用-z(gzip)選項,而是使用-j(bzip2)選項。
tar -xvjf guitar_songs.tar.bz2同樣,在提取檔案時,這些檔案會列在終端上。為了清楚起見,我們在tar中使用的命令列選項。焦油bz2檔案是:
如果我們列出下載目錄中的檔案,我們將看到另一個名為吉他歌曲的目錄已經建立。
如果要將檔案提取到當前目錄以外的位置,可以使用-C(指定目錄)選項指定目標目錄。
tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/在我們的文件/歌曲目錄中,我們會看到吉他歌曲目錄已經建立。
請注意,目標目錄必須已經存在,如果它不存在,tar將不會建立它。如果您需要建立一個目錄,並讓tar在一個命令中將所有檔案提取到其中,您可以按以下方式執行:
mkdir -p ~/Documents/Songs/Downloaded && tar -xvjf guitar_songs.tar.gz -C ~/Documents/Songs/Downloaded/p(parents)選項使mkdir建立所需的任何父目錄,確保目標目錄已建立。
到目前為止,我們只是採取了信仰的飛躍和提取檔案的視線看不見。你可能想三思而後行。您可以使用-t(list)選項在解壓縮tar檔案之前檢視其內容。通常透過less命令將輸出管道化是很方便的。
tar -tf ukulele_songs.tar.gz | less注意,我們不需要使用-z選項來列出檔案。我們只需要在從檔案中提取檔案時新增-z選項。焦油.gz檔案。同樣地,我們不需要-j選項來列出焦油bz2檔案。
滾動輸出,我們可以看到tar檔案中的所有內容都儲存在一個名為UkuleleSongs的目錄中,在這個目錄中,有檔案和其他目錄。
我們可以看到,Ukulele歌曲目錄包含了名為Random Songs、Ramones和Possibles的目錄。
要從tar檔案中的目錄中提取所有檔案,請使用以下命令。請注意,路徑用引號括起來,因為路徑中有空格。
tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/Ramones/"要提取單個檔案,請提供檔案的路徑和名稱。
tar -xvzf ukulele_songs.tar.gz "Ukulele Songs/023 - My Babe.odt"您可以使用萬用字元提取選定的檔案,其中*表示任何字串,而?表示任何單個字元。使用萬用字元需要使用--wildcards選項。
tar -xvz --wildcards -f ukulele_songs.tar.gz "Ukulele Songs/Possibles/B*"如果不希望在硬碟上重新建立tar檔案中的目錄結構,請使用--strip components選項。--strip components選項需要一個數字引數。數字表示要忽略的目錄級別。忽略目錄中的檔案仍會被提取,但不會在硬碟上覆制目錄結構。
如果我們在示例tar檔案中指定--strip components=1,那麼tar檔案中最上面的四絃琴歌曲目錄就不會在硬碟上建立。本應提取到該目錄的檔案和目錄將在目標目錄中提取。
tar -xvzf ukulele_songs.tar.gz --strip-components=1在我們的示例tar檔案中只有兩級目錄巢狀。因此,如果我們使用--strip components=2,則所有檔案都在目標目錄中提取,而不會建立其他目錄。
tar -xvzf ukulele_songs.tar.gz --strip-components=2如果你看一下Linux手冊頁,你會發現tar肯定是“命令列選項最多的命令”這個標題的一個很好的候選者。焦油.gz以及焦油bz2檔案具有良好的細粒度控制,我們只需要記住這些選項中的一小部分。
... 讓我們看看軟體是如何安裝在三大桌面平臺上的:Windows、macOS和Linux。 ...
...面是一個關於如何編譯和安裝的優秀指南焦油.GZ以及焦油BZ2Linux中的檔案。 ...
... 你覺得在Linux上安裝軟體怎麼樣?它與其他作業系統相比如何?可以改進嗎?分享你的想法,如果你有任何問題,不要猶豫問! ...
... 如何在raspberry pi上安裝windows軟體 ...
...料。它甚至可以實時顯示新增到檔案中的更新。我們教你如何使用它。 他殺了尾巴嗎? tail命令顯示檔案末尾的資料。通常,新資料會新增到檔案的末尾,因此tail命令是檢視檔案中最新新增內容的一種快速簡便的方法。它還可...
...人。如果你想自動化普通的瑣碎工作,或者你對蘋果應該如何設計作業系統有想法,BTT就是為你準備的。 自動檔案組織 想讓你的檔案自己組織起來嗎?哈澤爾就是這麼做的。您指示應用程式監視特定資料夾,它會根據您選擇的...
...與其他命令一起工作時,它就真正地出現了。當您看到它如何位於二進位制檔案和其他工具(如grep)之間時,您就開始瞭解這個稍微晦澀難懂的命令的功能了。
...容。 相關:如何從檔案中提取檔案。焦油.gz或者。焦油bz2Linux上的檔案 有幾種方法可以做到這一點。如果右鍵單擊該檔案,將出現上下文選單。從選單中選擇“Extract Here”。 如果您的上下文選單沒有“Extract Here”選項,請關閉...
...案。 相關:如何從檔案中提取檔案。焦油.gz或者。焦油bz2Linux上的檔案 zip、unzip和其他實用程式 您可能已經知道,Linux和類似Unix的作業系統(如macOS)具有允許您建立ZIP檔案並從中提取檔案的工具,稱為ZIP和unzip。但是有一系列...