Linux中的18個Tar命令示例

Linux的”tar“代表磁帶存檔,被大量Linux/Unix系統管理員用於處理Linux中的磁帶驅動器備份

Linux中的tar命令用於將一系列文件和目錄撕裂成壓縮嚴密的存檔文件,通常稱為tarballtargzipbzipLinux中

tar是最廣泛使用的命令之一,用於創建壓縮存檔文件,可以輕鬆地從一個磁盤移動到另一個磁盤或從一台機器移動到另一台機器。

tar – A Linux Archiving Utility

在本文中,我們將審查並討論各種tar命令示例,包括如何使用(tartar.gztar.bz2)壓縮來創建存檔文件、如何提取存檔文件、提取單個文件、查看文件的內容、驗證文件、將文件或目錄添加到現有存檔文件、估算tar存檔文件的大小等。

本指南的主要目的是提供各種可能對您理解並成為tar存檔操作專家有幫助的tar命令示例

1. 建立 Tar 壓縮檔案

下面是 tar 命令的示例,將在當前工作目錄中為目錄 /home/tecmint 創建一個 tar 壓縮檔案 tecmint-17-11-2023.tar

查看 tar 命令的示例操作。

tar -cvf tecmint-17-11-2023.tar /home/tecmint/
Create a Tar Archive File

讓我們討論上述 tar 命令中使用的每個選項。

  • c – Creates a new .tar archive file.
  • v – Verbosely show the .tar file progress.
  • f – File name type of the archive file.

2. 使用壓縮創建 Tar 存檔

為了創建壓縮的存檔檔案,我們使用選項 'z'(使用 gzip 壓縮存檔)。例如,下面的命令將為目錄 ‘/home/MyImages‘ 生成一個壓縮檔案,名為 'MyImages-17-11-2023.tar.gz'。(註: 'tar.gz''tgz' 是可以互換使用的術語)

tar cvzf MyImages-17-11-2023.tar.gz /home/tecmint/MyImages
OR
tar cvzf MyImages-17-11-2023.tgz /home/tecmint/MyImages
Create a Compressed Tar Archive

3. 在 Linux 中創建 tar.bz2 檔案

bz2 功能壓縮並創建一個比 gzip 更小的存檔檔案。然而,bz2 壓縮方法在壓縮和解壓縮方面需要更多時間,而 gzip 在這兩個過程中速度更快。

為了創建一個高度壓縮的新 tar 存檔,名為 Phpfiles-org.tar.bz2,將 /home/php 目錄中的所有文件和子目錄捆綁在一起,使用 -j 選項,指示 tar 使用 bzip2 壓縮算法,從而使檔案大小更小,以便進行有效的存儲和傳輸。

注意tar.bz2tbz 是類似的術語,都指的是 tb2

tar cvfj Phpfiles-org.tar.bz2 /home/tecmint/php
OR
tar cvfj Phpfiles-org.tar.tbz /home/tecmint/php
OR 
tar cvfj Phpfiles-org.tar.tb2 /home/tecmint/php
Create a tar.bz2 file Linux

4. 提取 Tar 存檔

解壓縮或提取 tar 檔案,只需執行以下命令,使用 'x' 選項(提取)。例如,以下命令將在當前工作目錄中解壓縮名為 ‘tecmint-17-11-2023.tar‘ 的檔案。

tar -xvf tecmint-17-11-2023.tar

如果要在不同目錄中解壓縮,請使用 -C 選項(指定目錄)。

tar -xvf tecmint-17-11-2023.tar -C /home/tecmint/

5. 提取壓縮的 tar.gz 存檔

要提取名為 “MyImages-17-11-2023.tar.gz” 的壓縮 tar 存檔的內容,請使用以下命令。

tar -xvf MyImages-17-11-2023.tar.gz

如果要提取到不同目錄,只需使用 -C 選項,這將把檔案提取到指定的目錄中,如下所示。

tar -xvf MyImages-17-11-2023.tar.gz -C /home/tecmint/

6. 提取 tar.bz2 存檔

要解壓高度壓縮的 tar.bz2 檔案,只需使用以下命令,這將從存檔中解壓所有檔案。

tar -xvf Phpfiles-org.tar.bz2

7. 列出 tar 存檔的內容

要列出或查看 tar 存檔的內容,只需執行以下命令,使用 -t 選項(列出內容),這將顯示 ‘ tecmint-17-11-2023.tar ‘ 存檔中包含的檔案和目錄的詳細清單。

tar -tvf tecmint-17-11-2023.tar
View Tar Contents Without Extracting

8. 查看 tar.gz 檔案內容

以下指令將顯示位於「MyImages-17-11-2023.tar.gz」壓縮檔案內的檔案和目錄詳細清單。

tar -tvf MyImages-17-11-2023.tar.gz
View Tar.gz Contents Without Extracting

9. 列印 tar.bz2 檔案內容

以下指令將提供「Phpfiles-org.tar.bz2」壓縮檔案內容概觀,而不必解壓縮檔案。

tar -tvf Phpfiles-org.tar.bz2
View Tar Contents Without Extracting

10. 從壓縮檔中提取單個檔案

要從壓縮檔 Phpfiles-org.tar.bz2 中提取名為 wp-cron.php 的單個檔案,請使用以下指令。請確保提供正確的檔案路徑以進行提取。

tar -xvf Phpfiles-org.tar.bz2 home/tecmint/php/wp-cron.php
Extract File From Tar Archive

11. 從壓縮檔中提取多個檔案

要從 tartar.gztar.bz2 壓縮檔案中提取或解壓多個檔案,請使用以下指令,該指令將從指定的壓縮檔案中提取檔案。

tar -xvf tecmint-17-11-2023.tar "file1" "file2" 
tar -zxvf MyImages-17-11-2023.tar.gz "file1" "file2" 
tar -jxvf Phpfiles-org.tar.bz2 "file1" "file2"

12. 在 Linux 中使用萬用字元提取一組檔案

為了提取一組文件,我們使用基於通配符的提取。例如,從一個tar、tar.gz 和 tar.bz2 存檔文件中提取以.php 開頭的所有文件組,請使用:

tar -xvf Phpfiles-org.tar --wildcards '*.php'
tar -zxvf Phpfiles-org.tar.gz --wildcards '*.php'
tar -jxvf Phpfiles-org.tar.bz2 --wildcards '*.php'

13. 將文件附加到現有存檔

要將文件或目錄添加到現有的tar、tar.gz 和 tar.bz2 存檔文件中,請使用選項-r,它將文件添加到現有的存檔文件中。

tar -rvf tecmint-14-09-12.tar xyz.txt
tar -rvf MyImages-14-09-12.tar.gz xyz.txt
tar -rvf Phpfiles-org.tar.bz2 xyz.txt

14. 驗證Tar 存檔文件

以下命令將顯示指定存檔文件中包含的文件和目錄的詳細列表,使您可以視覺驗證存檔的內容。如果存檔損壞或不完整,此驗證過程可能會在列出期間顯示錯誤。

tar -tvf Phpfiles-org.tar.bz2

15. 檢查Tar 存檔文件大小

要檢查任何tar、tar.gz 和 tar.bz2 存檔文件的大小,請使用以下命令,它將以Kilobytes(KB)顯示存檔文件的大小。

tar -czf - tecmint-14-09-12.tar xyz.txt | wc -c
tar -czf - MyImages-14-09-12.tar.gz xyz.txt | wc -c
tar -czf - Phpfiles-org.tar.bz2 xyz.txt | wc -c

16. 在創建Tar 存檔時排除文件

要在創建tar壓縮檔時排除特定文件和目錄,可以使用以下命令,該命令使用--exclude選項,在創建tar壓縮檔時排除文件和目錄,如下所示。

tar --exclude='file1.txt' -zcvf backup.tar.gz /home/tecmint
tar --exclude='/home/tecmint/uploads' -zcvf backup.tar.gz /home/tecmint

在上述命令中,我們從/home/tecmint文件夾中排除了文件’file1.txt‘和’uploads‘目錄。

要在創建tar壓縮檔時排除具有特定文件擴展名(.txt)的文件,請使用:

tar --exclude='*.txt' -zcvf backup.tar.gz /home/tecmint

17. 從Tar壓縮檔中刪除文件

以下tar命令將使用--delete選項從已創建的tar檔中刪除文件或目錄,如下所示。

tar --delete -f backup.tar.gz file1.txt
tar --delete -f backup.tar.gz '/home/tecmint/uploads'

18. 從Tar壓縮檔中提取文件擴展名

以下tar命令將僅使用--wildcards選項從tar壓縮檔中提取具有特定擴展名.png的文件,如下所示。

tar -xvf backup.tar.gz --wildcards '*.png'

19. Tar命令用法和選項

了解‘tar‘命令的以下各種選項和用法模式對於有效地對文件進行封存、壓縮和提取至關重要。

  • -c – 創建一個封存檔案。
  • -x – 提取一個封存檔案。
  • -v – 顯示存檔文件的進度。
  • -f – 存檔文件的文件名。
  • -t – 查看存檔文件的內容。
  • -u – 對現有的存檔文件進行存檔和添加。
  • -j – 通過bzip2對存檔文件進行過濾。
  • -z – 通過gzip對存檔文件進行過濾。
  • -r – 將文件或目錄附加或更新到現有的存檔文件中。
  • -W – 驗證存檔文件。
  • -A – 串接存檔文件。
  • --wildcards – 在UNIX tar命令中指定模式。
  • --exclude – 在創建存檔時排除文件和目錄。
  • --delete – 從存檔中刪除文件和目錄。

目前就這些,希望上述tar命令示例足以讓您學習,如需更多信息,請使用man tar命令。

# man tar

如果您想將任何大型tar存檔文件分割為多個部分或塊,只需查看這篇文章:

如果我們漏掉了任何示例,請通過評論框與我們分享,請不要忘記與您的朋友分享本文。這是表達感謝的最好方式…

Source:
https://www.tecmint.com/tar-command-examples-linux/