Tar 命令在 Linux/Unix 中的使用及示例2025年3月17日 | 阅读 7 分钟 在 Linux 中,tar 命令是 tape archive(磁带归档)的缩写。此命令用于创建和提取归档文件。在 Linux 中,它是促进归档功能的重要命令之一。我们可以使用此命令创建未压缩和压缩的归档文件,还可以对其进行修改和维护。 Tar 是计算机软件的一种实用程序,用于在计算中将多个文件收集到一个单一的归档文件中。通常,它被称为 tarball,用于备份和分发目的。其名称源自“tape archive”(磁带归档),因为它最初是为使用文件系统之外的顺序 I/O 设备指定数据而开发的。tar 创建的归档数据包含许多文件系统参数,如目录组织、文件访问权限、所有权、时间戳和名称。为了支持 pax,POSIX 放弃了 tar,但 tar 仍然被广泛使用。 它首先于 1979 年 1 月在 Version 7 Unix 中发布,取代了 tp 程序。为了存储数据,文件结构在 POSIX.1-1988 和后来的 POSIX.1-2001 中标准化,并成为几乎所有现代文件归档系统支持的模式。类 Unix 操作系统通常包含支持 tar 文件和用于压缩它们的实用程序(如 bzip2 和 gzip)的工具。 tar 的文件格式有许多 tar 文件格式可用,包括当前和历史上的格式。tar 的两种格式在 POSIX 中定义:pax 和 ustar。 头文件文件头记录包含文件的元数据。在头记录中,信息以 ASCII 标准编码,以确保在具有不同字节顺序的不同体系结构之间具有灵活性。因此,如果归档中的每个文件都是 ASCII 文本文件并包含 ASCII 名称,则该归档就是一个 ASCII 文本文件(包含一些 NUL 字符)。 下表列出了原始 Unix tar 格式定义的几个字段。链接文件/指示符表包含一些现代扩展。如果一个字段未使用,则用各种 NUL 字节填充。 POSIX.1-1988 之前的 tar 头
Ustart 格式在 Ustar 格式中,几乎所有现代 tar 程序都会读取和写入归档,该格式由 1988 年的 POSIX IEEE P1003.1 标准引入。它引入了额外的头字段。以前的 tar 程序会忽略这些额外信息,但新程序会检查“Ustar”字符串是否存在以确定是否正在使用较新格式。
POSIX.1-2001/paxSun 在 1997 年提出了一种向 tar 格式添加扩展的技术。后来,它被批准为 POSIX.1-2001 标准。该格式称为 pax 格式或扩展 tar 格式。一些标签由 POSIX 标准指定,包括 mtime、atime、linkpath、gname、uname、sizes、gid、uid,以及组/用户名和路径名的字符集定义。 tar 的主要实现主要实现按原始顺序提及
此外,大多数 cpio 和 pax 实现可以创建和读取两种或更多类型的 tar 文件。 tar 命令的语法tar 命令中的选项tar 命令中的各种选项如下所列
归档文件简介归档文件可以定义为包含多个带元数据的文件。这些文件用于将多个数据文件收集到一个单独的文件中,以便于存储和移植。它还可以用于压缩文件以节省存储空间。 tar 命令示例tar 命令中一些广泛使用的重要示例如下 1. 使用 -cvf 选项创建未压缩的 tar 归档此选项创建一个名为 file.tar 的 tar 文件。它是 mydir 目录中所有 .txt 文件的归档。 命令如下: ![]() 2. 使用 -xvf 选项从归档中提取文件此选项可以从归档中提取文件。 命令如下: ![]() 3. 使用 -z 选项对 tar 归档进行 gzip 压缩此选项创建一个名为 file.tar.gz 的 tar 文件。它是所有 .txt 文件的归档。 命令如下: ![]() 4. 使用 -xvzf 选项提取 gzip tar 归档此选项可以从 file.tar.gz tar 归档文件中提取文件。 命令如下: ![]() 5. 使用 -j 选项创建压缩的 tar 文件此选项将帮助我们创建和压缩归档文件。与 gzip 相比,解压缩和压缩都需要更长的时间。 命令如下: ![]() 6. 在 Linux 中解压单个指定目录或文件此选项用于在当前目录或指定目录中使用 -C 选项解压任何文件。 命令如下: ![]() 或者, ![]() 7. 在 Linux 中解压多个 .tar.tbz, .tar.gz, .tar 文件此选项将帮助我们从 tar.bz2、tar.gz 和 tar 归档文件中解压或提取多个文件。 此选项的示例如下 ![]() 或者, ![]() 或者, ![]() 8. 检查现有 tar.tbz, tar.gz, tar 文件的大小此命令将帮助我们以千字节 (KB) 为单位显示上面提到的归档文件的大小。 命令如下: 或者, 或者, ![]() 9. 更新现有的 tar 文件在 Linux 中,更新现有 tar 文件的命令如下 10. 使用 tf 选项列出内容并描述 tar 文件此选项将帮助我们列出整个归档文件的列表。此外,我们还可以列出任何 tar 文件中的特定内容。 命令如下: ![]() 11. 使用 -tvf 选项查看归档在 Linux 中,我们可以使用 -tvf 选项来查看归档。 命令如下: ![]() 12. 将文件名作为参数传递以查找 tar 文件此选项可以查看归档文件及其信息。 命令如下: ![]() 13. 使用管道将 'grep 命令' 传递以搜索我们正在寻找的内容此选项将帮助我们仅列出通过归档文件在 grep 中提到的图像或文本。 命令如下: 或者, ![]() 通配符简介在 Linux 中,通配符也被称为通配符字符或野字符。它是一个用于表示或替换多个字符的符号。 通常,通配符是问号 (?),表示单个字符,或者星号 (*),表示多个字符。 示例-14. 查找 .png 格式的图像这将帮助我们仅从 file.tar 归档中提取带有 .png 扩展名的文件。-wildcards 选项告知 tar 解释要提取的文件名中的通配符。 文件名 (*.png) 被包含在单引号中,以防止通配符 (*) 被任何 shell 错误地扩展。 命令如下: ![]() 注意:在上面的命令中,"*" 符号被用作文件名来匹配该特定目录中的每个文件。15. 从 tar 归档中删除文件我们可以使用 --delete 选项从 tar 归档中移除文件。 命令如下: 示例 输出 ![]() hello1.txt 文件已从 file.tar 归档中删除 ![]() 下一个主题Linux Find File |
我们请求您订阅我们的新闻通讯以获取最新更新。