Linux 中的 18 个 Tar 命令示例

Linux的”tar“代表磁带存档,被大量Linux/Unix系统管理员用于处理Linux中的磁带驱动器备份

Linux中的tar命令用于将一组文件和目录解压缩到一个称为tarballtar的高度压缩的存档文件中,gzipbzipLinux中。

tar是创建可轻松从一个磁盘移动到另一个磁盘或从一台机器移动到另一台机器的压缩存档文件的最广泛使用的命令。

tar – A Linux Archiving Utility

在本文中,我们将回顾和讨论各种tar命令示例,包括如何使用(tartar.gztar.bz2)压缩创建存档文件,如何提取存档文件,提取单个文件,查看文件内容,验证文件,添加文件或目录到现有存档文件,估算tar存档文件的大小等。

本指南的主要目的是提供各种tar命令示例,这些示例可能对您理解和成为tar归档操作专家有所帮助。

1. 创建 Tar 存档文件

下面是 tar 命令的示例,将在当前工作目录中为目录 /home/tecmint 创建一个名为 tecmint-17-11-2023.tartar 存档文件。

查看 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

如果您想要在不同的目录中解压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归档文件的大小,使用以下命令,它将以千字节(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/