Ubuntu

解壓 tar.gz 中的特定文件夾

  • April 24, 2020

如何使用終端/命令行 ( Ubuntu 14.04 (Trusty Tahr)) 解壓縮 tar.gz 中的特定文件夾?

精確的:

-file.tar.gz
-- folder1
-- folder2

如何提取…

... folder1 -->  ~/locationX
... folder2 --> ~/locationY

我怎樣才能做到這一點?

請注意: 這純粹與終端/命令行有關,與Puppet無關。這只是一個例子——我會在 Puppet 中節省大約 50 個額外的步驟,如果有一個命令可以從 a 中解壓縮特定文件夾,tar.gz因為我可以避免移動文件……

我認為應該這樣做:

tar -xzf file.tar.gz -C ~/locationX folder1 -C ~/locationY folder2

-C選項表示在進行提取之前更改到指定的目錄。在 tarfile 名稱之後指定文件名參數會將提取限制為僅這些文件或目錄。你可以-C像你一樣重複這個掛起的目錄。

請注意,這將在子目錄中進行提取:folder1將進入~/locationX/folder1folder2將進入~/locationY/folder2。您可以使用以下--strip-components選項來防止這種情況:

tar -xzf file.tar.gz -C ~/locationX --strip-components=1 folder1 \
                    -C ~/locationY --strip-components=1 folder2

此外,如果 tar 文件中的實際前綴是./folder1./folder2,就像tar -czf file.tar.gz ../使用--strip-components=2.

引用自:https://unix.stackexchange.com/questions/175087