zhcn 技术 手机 Linux 上的 Tar 命令:语法、选项和示例

Linux 上的 Tar 命令:语法、选项和示例

在 Linux 上归档和取消归档文件是每个 Linux 用户都应该了解的重要功能,以实现高效的文件管理。当压缩文件和目录时,Linux 的 tar 命令可以成为你的救星。无论您是新手还是经验丰富的 Linux 用户,充分了解 tar 命令及其选项对于执行各种任务都非常有用。本文介绍如何在 Linux 上使用 tar 命令。完整的语法、选项和示例。

Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

Linux 中的 tar 命令是什么

在讨论 tar 命令之前,让我们先了解一下什么是归档文件。这是一种由压缩格式的多个文件和目录组成的文件类型。这种压缩格式的文件大小较小,并且使用较少的带宽来存储或传输。文件存档格式有多种,包括 .gz、tar.bz 和 .zip。如果您想了解如何处理 zip 文件,请阅读我们有关如何在 Linux 上压缩和解压缩文件的详细指南。

tar 命令是“Tape Archive”的缩写,是一个 Linux 实用工具,用于创建和管理各种类型的归档文件。 tar 命令是可以创建和修改存档文件的不同类型工具的集合。您可以使用tar命令创建各种类型的归档文件,例如.tar、.tar.gz和.tar.bz2,它们由文件和目录组成。所有这些文件类型的压缩率和总体文件大小各不相同。

Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

Linux 上的 Tar 命令:语法和选项

Linux tar 命令非常易于使用并且语法简单。使用 tar 命令的基本语法是:

tar <options> <archive_file_name> <files_to_archive>

在上述语法中, <archive_file_name>是要创建的存档文件的名称, <files_to_archive>指定要存档的文件和目录的列表。可与 tar 命令一起使用的选项包括:

选项解释
-c用于创建新档案
-f用于指定存档文件名
-d比较归档文件和文件系统并列出所有差异。
-r将新文件添加到存档文件
-t列出存档文件的内容
-u仅添加更新的文件
-X从存档文件中提取文件
-j从 .bz2 文件中提取
-z从 .gz 文件中提取
-v显示有关正在执行的每个操作的信息
Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

如何在 Linux 上创建 .tar 存档文件

当文件和目录被压缩为 .tar 文件时,此类存档文件称为 tarball。压缩级别适中,但绝对高于.zip。将文件和目录压缩到 tarball 的语法是:

tar -cvf <archive_filename>.tar <file_or_directory_to_archive>

例如,要将名为“~/Documents/test”的目录压缩为名为“test_archive.tar”的归档文件,必须使用以下命令:

tar -cvf test_archive.tar ~/Documents/test

Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

如何在 Linux 上创建 .tar.gz 存档文件

Gzip 是另一个数据压缩实用程序,它使用“Deflate 算法”来压缩文件。与压缩成 tarball 的文件相比,它具有更高级别的压缩。 Gzip 是最常用的格式,因为它创建的文件较小,扩展名为 .tar.gz。但是,使用 Gzip 压缩的文件比 .tar 文件需要更长的时间来解压缩。要将文件或目录压缩为 .tar.gz 文件,请使用以下语法:

tar -cvzf <archive_file_name> .tar.gz <file_or_directory_to_compress>

假设您要在“~/Documents/test”目录中创建一个名为“test.tar.gz”的存档文件。您可以使用以下命令:

tar -cvzf test.tar.gz ~/Documents/test

如何在 Linux 上创建 .tar.bz2 存档文件

如果要进一步减小存档文件的大小,请使用 tar 命令的 bzip2 压缩格式。 bzip2 格式使用“ Burrows–Wheeler 算法”,该算法有助于创建扩展名为 .tar.bz 的非常小的文件。虽然文件较小,但压缩和解压缩的时间比 gzip 长。使用 bzip2 压缩文件的主要缺点是它在某些精简版 Linux 系统上不受支持,而 gzip 在所有 Linux 系统上都受支持。

要使用 tar 命令压缩 bzip2 格式的文件/目录,需要使用以下语法:

tar -cvjf <archive_file_name>.tar.bz2 <file_or_directory_to_compress>

例如,要将整个 ~/Documents/test 目录压缩为“test.tar.bz2”,请使用以下语法:

tar -cvjf test.tar.bz2 ~/Documents/test

如何使用 tar 命令查看存档文件的内容

现在您知道如何创建存档文件了。您可能需要查看文件的内容以确保所有必需的文件均已存档。要查看存档文件的内容,请将上述语法中的 -c 标志替换为 -t 标志。

tar -tvf <archive_file_name>

此语法适用于上面提到的所有三种类型的存档文件:.tar、.tar.gz 和 .tar.bz2。例如,如果要查看文件“test_archive.tar.gz”的内容,请使用以下命令:

tar -tvf test_archive.tar.gz

使用 tar 命令从存档文件中提取文件

现在让我们看看如何在 Linux 上从存档文件中提取所有文件。要从存档文件或目录中提取文件,请使用以下命令:

tar -xvf <archive_file_name>

使用上述语法,文件将被提取到同一目录。例如,使用以下命令提取 test.tar.gz 文件。

tar -xvf test.tar.gz

如果要将文件解压到另一个目录,则必须使用以下语法:

tar -xvf <archive_file_name> -C <target_directory_name>

例如,如果要将文件“test_archive.tar.gz”解压到“~/Documents/test”目录,请使用以下命令:

tar -xvf test_archive.tar.gz -C ~/Documents/test

从 Linux 上的存档文件中提取选定的文件

tar 命令的优点是不仅可以从存档文件中提取所有文件,而且还可以仅提取选定的文件。根据存档文件类型,使用以下语法之一从存档文件中提取选定的文件:

  • 对于 .tar 文件:

tar -xvf <archive_file> <file1_to_extract> <file2_to_extract> <file3_to_extract>

  • 从 .tar.gz 文件中提取。

tar -xzvf <archive_file> <file1_to_extract> <file2_to_extract> <file3_to_extract>

  • 对于 .tar.bz2 文件:

tar -jxvf <archive_file> <file1_to_extract> <file2_to_extract> <file3_to_extract>

例如,如果要从“test_archive.tar.gz”文件中提取文件“test.py”和“test.png”,请使用以下语法:

tar -xzvf test.tar.gz home/intel/Documents/test/test1/test3.txt home/intel/Documents/test/example_1.pdf

使用 tar 命令提取与模式匹配的文件

假设您只想提取一种类型的文件,但不想一一写入文件名。在这些情况下,您可以使用常见的通配符模式来匹配要提取的文件。使用 tar 命令按模式提取文件的语法是:

  • 对于 .tar 文件 –

tar -xvf <archive_file> --wildcards '<wildcard_pattern>'

  • 从 .tar.gz 文件中提取 –

tar -xzvf <archive_file> --wildcards '<wildcard_pattern>'

  • 对于 .tar.bz2 文件 –

tar -xjvf <archive_file> --wildcards '<wildcard_pattern>'

例如,如果要从“test_archive.tar.bz2”文件中提取所有 .png 文件,请使用以下命令:

tar -xjvf test_archive.tar.bz2 --wildcards '*.png'

仅提取存档文件中选定的文件
仅提取存档文件中选定的文件
仅提取选定的文件

使用 tar 命令将文件添加到存档文件

有时您可能会不小心忘记将文件添加到存档文件中。在这种情况下,您可以创建一个包含所有必需文件的存档文件并重新开始,或者简单地使用 -r 标志来添加您错过的文件。大多数用户都会同意第二种方法更可行。要将新文件/目录添加到 tar 存档,请使用以下语法:

tar -rvf <archive_file> <file_or_directory_to_add>

假设您要将文件“test1.png”添加到“test_archive.tar”中。您可以使用以下命令:

tar -rvf test_archive.tar Documents/test/test1.png

注意:上述语法仅适用于 .tar 文件,不适用于 .tar.gz 或 .tar.bz2 文件。

使用 tar 命令从存档文件中删除文件

正如您可以在由于某种原因错过文件时将文件添加到存档文件中一样,您也可以使用 -delete 标志从存档文件中删除文件。要从存档文件中删除文件,请使用以下语法:

tar --delete <file_to_delete> -f <archive_file_name>

例如,要从存档“test_archive.tar”中删除文件“test.txt”,请使用以下命令:

tar -v --delete home/intel/Documents/test/example_1.pdf -f test_archive.tar

常问问题

zip 和 tar 命令有什么区别?

tar命令默认只归档文件和目录,不压缩它们。当与 gzip 或 bzip2 的 -z 或 -j 标志结合使用时,tar 可以实现出色的压缩级别。另一方面,zip 命令可以压缩和归档文件/目录。

我可以使用 tar 命令归档远程文件吗?

是的,您可以将 tar 命令与 SSH 结合使用来归档和传输远程文件。例如,要将文件从远程服务器存档并传输到本地计算机,请使用命令ssh user@remote_host "tar -czvf - <path_to_remote_files>" | tar -xzvf - -C <path_to_local_directory >ssh user@remote_host "tar -czvf - <path_to_remote_files>" | tar -xzvf - -C <path_to_local_directory >

在 Linux 上归档和取消归档文件是每个 Linux 用户都应该了解的重要功能,以实现高效的文件管理。当压缩文件和目录时,Linux 的 tar 命令可以成为你的救星。无论您是新手还是经验丰富的 Linux 用户,充分了解 tar 命令及其选项对于执行各种任务都非常有用。本文介绍如何在 Linux 上使用 tar 命令。完整的语法、选项和示例。

Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

Linux 中的 tar 命令是什么

在讨论 tar 命令之前,让我们先了解一下什么是归档文件。这是一种由压缩格式的多个文件和目录组成的文件类型。这种压缩格式的文件大小较小,并且使用较少的带宽来存储或传输。文件存档格式有多种,包括 .gz、tar.bz 和 .zip。如果您想了解如何处理 zip 文件,请阅读我们有关如何在 Linux 上压缩和解压缩文件的详细指南。

tar 命令是“Tape Archive”的缩写,是一个 Linux 实用工具,用于创建和管理各种类型的归档文件。 tar 命令是可以创建和修改存档文件的不同类型工具的集合。您可以使用tar命令创建各种类型的归档文件,例如.tar、.tar.gz和.tar.bz2,它们由文件和目录组成。所有这些文件类型的压缩率和总体文件大小各不相同。

Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

Linux 上的 Tar 命令:语法和选项

Linux tar 命令非常易于使用并且语法简单。使用 tar 命令的基本语法是:

tar <options> <archive_file_name> <files_to_archive>

在上述语法中, <archive_file_name>是要创建的存档文件的名称, <files_to_archive>指定要存档的文件和目录的列表。可与 tar 命令一起使用的选项包括:

选项解释
-c用于创建新档案
-f用于指定存档文件名
-d比较归档文件和文件系统并列出所有差异。
-r将新文件添加到存档文件
-t列出存档文件的内容
-u仅添加更新的文件
-X从存档文件中提取文件
-j从 .bz2 文件中提取
-z从 .gz 文件中提取
-v显示有关正在执行的每个操作的信息
Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

如何在 Linux 上创建 .tar 存档文件

当文件和目录被压缩为 .tar 文件时,此类存档文件称为 tarball。压缩级别适中,但绝对高于.zip。将文件和目录压缩到 tarball 的语法是:

tar -cvf <archive_filename>.tar <file_or_directory_to_archive>

例如,要将名为“~/Documents/test”的目录压缩为名为“test_archive.tar”的归档文件,必须使用以下命令:

tar -cvf test_archive.tar ~/Documents/test

Linux 上的 Tar 命令:语法、选项和示例
Linux 上的 Tar 命令:语法、选项和示例

如何在 Linux 上创建 .tar.gz 存档文件

Gzip 是另一个数据压缩实用程序,它使用“Deflate 算法”来压缩文件。与压缩成 tarball 的文件相比,它具有更高级别的压缩。 Gzip 是最常用的格式,因为它创建的文件较小,扩展名为 .tar.gz。但是,使用 Gzip 压缩的文件比 .tar 文件需要更长的时间来解压缩。要将文件或目录压缩为 .tar.gz 文件,请使用以下语法:

tar -cvzf <archive_file_name> .tar.gz <file_or_directory_to_compress>

假设您要在“~/Documents/test”目录中创建一个名为“test.tar.gz”的存档文件。您可以使用以下命令:

tar -cvzf test.tar.gz ~/Documents/test

如何在 Linux 上创建 .tar.bz2 存档文件

如果要进一步减小存档文件的大小,请使用 tar 命令的 bzip2 压缩格式。 bzip2 格式使用“ Burrows–Wheeler 算法”,该算法有助于创建扩展名为 .tar.bz 的非常小的文件。虽然文件较小,但压缩和解压缩的时间比 gzip 长。使用 bzip2 压缩文件的主要缺点是它在某些精简版 Linux 系统上不受支持,而 gzip 在所有 Linux 系统上都受支持。

要使用 tar 命令压缩 bzip2 格式的文件/目录,需要使用以下语法:

tar -cvjf <archive_file_name>.tar.bz2 <file_or_directory_to_compress>

例如,要将整个 ~/Documents/test 目录压缩为“test.tar.bz2”,请使用以下语法:

tar -cvjf test.tar.bz2 ~/Documents/test

如何使用 tar 命令查看存档文件的内容

现在您知道如何创建存档文件了。您可能需要查看文件的内容以确保所有必需的文件均已存档。要查看存档文件的内容,请将上述语法中的 -c 标志替换为 -t 标志。

tar -tvf <archive_file_name>

此语法适用于上面提到的所有三种类型的存档文件:.tar、.tar.gz 和 .tar.bz2。例如,如果要查看文件“test_archive.tar.gz”的内容,请使用以下命令:

tar -tvf test_archive.tar.gz

使用 tar 命令从存档文件中提取文件

现在让我们看看如何在 Linux 上从存档文件中提取所有文件。要从存档文件或目录中提取文件,请使用以下命令:

tar -xvf <archive_file_name>

使用上述语法,文件将被提取到同一目录。例如,使用以下命令提取 test.tar.gz 文件。

tar -xvf test.tar.gz

如果要将文件解压到另一个目录,则必须使用以下语法:

tar -xvf <archive_file_name> -C <target_directory_name>

例如,如果要将文件“test_archive.tar.gz”解压到“~/Documents/test”目录,请使用以下命令:

tar -xvf test_archive.tar.gz -C ~/Documents/test

从 Linux 上的存档文件中提取选定的文件

tar 命令的优点是不仅可以从存档文件中提取所有文件,而且还可以仅提取选定的文件。根据存档文件类型,使用以下语法之一从存档文件中提取选定的文件:

  • 对于 .tar 文件:

tar -xvf <archive_file> <file1_to_extract> <file2_to_extract> <file3_to_extract>

  • 从 .tar.gz 文件中提取。

tar -xzvf <archive_file> <file1_to_extract> <file2_to_extract> <file3_to_extract>

  • 对于 .tar.bz2 文件:

tar -jxvf <archive_file> <file1_to_extract> <file2_to_extract> <file3_to_extract>

例如,如果要从“test_archive.tar.gz”文件中提取文件“test.py”和“test.png”,请使用以下语法:

tar -xzvf test.tar.gz home/intel/Documents/test/test1/test3.txt home/intel/Documents/test/example_1.pdf

使用 tar 命令提取与模式匹配的文件

假设您只想提取一种类型的文件,但不想一一写入文件名。在这些情况下,您可以使用常见的通配符模式来匹配要提取的文件。使用 tar 命令按模式提取文件的语法是:

  • 对于 .tar 文件 –

tar -xvf <archive_file> --wildcards '<wildcard_pattern>'

  • 从 .tar.gz 文件中提取 –

tar -xzvf <archive_file> --wildcards '<wildcard_pattern>'

  • 对于 .tar.bz2 文件 –

tar -xjvf <archive_file> --wildcards '<wildcard_pattern>'

例如,如果要从“test_archive.tar.bz2”文件中提取所有 .png 文件,请使用以下命令:

tar -xjvf test_archive.tar.bz2 --wildcards '*.png'

仅提取存档文件中选定的文件
仅提取存档文件中选定的文件
仅提取选定的文件

使用 tar 命令将文件添加到存档文件

有时您可能会不小心忘记将文件添加到存档文件中。在这种情况下,您可以创建一个包含所有必需文件的存档文件并重新开始,或者简单地使用 -r 标志来添加您错过的文件。大多数用户都会同意第二种方法更可行。要将新文件/目录添加到 tar 存档,请使用以下语法:

tar -rvf <archive_file> <file_or_directory_to_add>

假设您要将文件“test1.png”添加到“test_archive.tar”中。您可以使用以下命令:

tar -rvf test_archive.tar Documents/test/test1.png

注意:上述语法仅适用于 .tar 文件,不适用于 .tar.gz 或 .tar.bz2 文件。

使用 tar 命令从存档文件中删除文件

正如您可以在由于某种原因错过文件时将文件添加到存档文件中一样,您也可以使用 -delete 标志从存档文件中删除文件。要从存档文件中删除文件,请使用以下语法:

tar --delete <file_to_delete> -f <archive_file_name>

例如,要从存档“test_archive.tar”中删除文件“test.txt”,请使用以下命令:

tar -v --delete home/intel/Documents/test/example_1.pdf -f test_archive.tar

常问问题

zip 和 tar 命令有什么区别?

tar命令默认只归档文件和目录,不压缩它们。当与 gzip 或 bzip2 的 -z 或 -j 标志结合使用时,tar 可以实现出色的压缩级别。另一方面,zip 命令可以压缩和归档文件/目录。

我可以使用 tar 命令归档远程文件吗?

是的,您可以将 tar 命令与 SSH 结合使用来归档和传输远程文件。例如,要将文件从远程服务器存档并传输到本地计算机,请使用命令ssh user@remote_host "tar -czvf - <path_to_remote_files>" | tar -xzvf - -C <path_to_local_directory >ssh user@remote_host "tar -czvf - <path_to_remote_files>" | tar -xzvf - -C <path_to_local_directory >