如何提取(解压缩)Tar Gz 文件
如果你在开源世界漫游,你有可能经常遇到.tar.gz文件。开源包通常以.tar.gz和.zip格式提供下载。
tar
用于通过将一组文件转换为存档来创建 tar 存档。它支持大量的压缩程序,如gzip、bzip2、lzip、lzma、lzop、xz和compress。Tar 最初设计用于创建存档以将文件存储在磁带上,这就是为什么它的名字是"Tape ARchive"。
Gzip是最流行的压缩tar文件的算法。按照惯例,用gzip压缩的tar压缩文件的名称应该以.tar.gz或.tgz结尾。
简而言之,以.tar.gz结尾的文件是用gzip压缩的.tar归档文件。
tar
命令还可以用来提取tar存档,显示存档中包含的文件列表,向现有的存档中添加额外的文件,以及其他各种操作。
在本教程中,我们将向你展示如何提取(或解压)tar.gz和tgz档案。
提取tar.gz文件
大多数Linux发行版和macOS都默认预装了tar命令。
要提取tar.gz文件,使用--extract
(-x
)选项,并在f
选项后指定存档文件名。
tar -xf archive.tar.gz
tar
命令会自动检测压缩类型并提取存档。同样的命令也可以用来提取用其他算法压缩的tar存档,如.tar.bz2。
如果你是一个桌面用户,命令行不是你的事,你可以使用你的文件管理器。要提取(解压缩)一个tar.gz文件,只需右击你要提取的文件并选择 "提取"。Windows用户需要一个名为7zip的工具来提取tar.gz文件。
-v
选项将使tar
命令更加明显,并在终端上打印正在提取的文件的名称。
tar -xvf archive.tar.gz
默认情况下,tar
将再当前工作目录中提取存档内容 。使用 --directory
(-C
) 在特定目录中提取存档文件:
例如,要提取存档内容到/home/linuxize/files
目录,你可以使用。
tar -xf archive.tar.gz -C /home/linuxize/files
从tar.gz文件中提取特定的文件
要从tar.gz文件中提取一个或多个特定的文件,请在归档文件名后添加一个用空格分隔的要提取的文件名的列表。
tar -xf archive.tar.gz file1 file2
当提取文件时,你必须提供它们的确切名称,包括路径,如--list
(-t
)所打印的那样。
从归档文件中提取一个或多个目录与提取文件是一样的。
tar -xf archive.tar.gz dir1 dir2
如果你试图提取一个不存在的文件,将显示一个类似于以下的错误信息。
tar -xf archive.tar.gz README
输出
tar: README: Not found in archive
tar: Exiting with failure status due to previous errors
你也可以根据通配符模式从tar.gz文件中提取文件,方法是使用--wildcards
选项,并对模式加引号以防止shell解释它。
例如,要提取名称以.js
结尾的文件(Javascript文件),你将使用。
tar -xf archive.tar.gz --wildcards '*.js'
从stdin中提取tar.gz文件
如果你是通过从stdin读取压缩的tar.gz文件(通常是通过管道)来提取,你需要指定解压缩选项。告诉tar通过gzip读取归档文件的选项是-z
。
在下面的例子中,我们使用wget
命令下载Blender源,并将其输出管道到tar
命令:
wget -c https://download.blender.org/source/blender-2.80.tar.gz -O - | sudo tar -xz
如果你没有指定解压选项,tar
将指示你应该使用哪种选项。
输出
tar: Archive is compressed. Use -z option
tar: Error is not recoverable: exiting now
列举tar.gz文件
要列出一个tar.gz文件的内容,使用--list
(-t
)选项。
tar -tf archive.tar.gz
输出结果将看起来像这样。
file1
file2
file3
如果你加上--verbose
(-v
)选项,tar
将打印更多信息,如所有者、文件大小、时间戳......等。
tar -tvf archive.tar.gz
-rw-r--r-- linuxize/users 0 2019-02-15 01:19 file1
-rw-r--r-- linuxize/users 0 2019-02-15 01:19 file2
-rw-r--r-- linuxize/users 0 2019-02-15 01:19 file3
总结
tar.gz文件是一个用Gzip压缩的Tar存档。要提取一个tar.gz文件,使用tar -xf
命令,后面跟着存档名称。
如果你有任何问题,请在下面留言。