如何在 Ubuntu 中提取 tar.gz 文件(终端 & GUI)+ 解决常见错误

目次

1. 什么是 tar.gz 文件?基础知识

如果您正在 Ubuntu 上尝试提取 tar.gz 文件,首先了解 tar.gz 实际上是什么 会很有帮助。一旦您了解了这一点,命令就会变得更有意义。本节仅以简单的方式解释初学者所需的内容。

1.1 tar.gz 结合了“归档”和“压缩”

tar.gz 简而言之,就是 将多个文件/文件夹捆绑成一个,然后压缩该捆绑包的文件

  • tar :一种归档格式,用于将多个文件“捆绑”成一个(归档)
  • gz :文件扩展名,表示使用 gzip “压缩”

因此,tar.gz 文件本质上是两个步骤的结合:

  1. 将文件/文件夹捆绑在一起 (tar)
  2. 压缩捆绑包 (gzip)

这就是为什么在 Ubuntu 上,“提取” tar.gz 更准确地说是 “先解压缩,然后解包归档。”

1.2 为什么 tar.gz 在 Ubuntu 上如此常见

在 Linux 环境(包括 Ubuntu)中,tar.gz 文件极其常见。原因很简单:它们非常适合这些用例。

  • 软件分发 :易于分发完整的源代码和/或二进制文件
  • 备份 :可以将整个文件夹打包成一个文件
  • 存储日志和配置文件 :更容易组织大量小文件

特别是,您从网络下载的工具和在 GitHub 上分发的软件包通常以 tar.gz 归档形式提供。

1.3 与类似扩展名的区别 (.tgz / .tar / .gz)

有一些看起来相似的扩展名常常让初学者困惑,所以让我们澄清一下。

• .tgz 是 .tar.gz 的较短版本

.tgz 实际上 与 .tar.gz 相同
这是有时仍使用的较旧的简写。

• .tar 是“仅归档”(未压缩)

.tar 仅是归档(捆绑),没有压缩。
它往往文件大小较大。

• .gz 通常表示“单个文件压缩”

.gz 基本上是一种压缩格式。
在许多情况下,它只是一个使用 gzip 压缩的单个文件(例如,log.txt.gz),可能根本不包括 tar。

对于本文,只需记住:tar.gz 表示“归档 (tar) + 压缩 (gzip)” 结合。

1.4 提取前需要知道什么(避免常见错误)

初学者常常在两个点上卡住:“文件将提取到哪里?”和“内容是否安全?”牢记这些想法以保持安全和有序。

  • 默认情况下,提取发生在您的“当前文件夹”中
  • 在提取前预览内容更安全
  • 如果您指定提取文件夹,您可以整齐地解包到桌面或任何您想要的文件夹中

在下一章中,我们将逐步介绍实际命令,并准确展示如何一步步完成。

2. 如何在 Ubuntu 上提取 tar.gz 文件(终端命令)

在 Ubuntu 上提取 tar.gz 文件有两种主要方式:

  • 通过终端提取(命令) ← 最常见且可靠
  • 通过 GUI 提取(右键) ← 简单,但灵活性较低

本文首先关注 基于命令的提取,因为它最容易重现和故障排除——即使对初学者来说也是如此。

2.1 最基本的提取命令(先记住这个)

这是 Ubuntu 上提取 tar.gz 文件的标准命令:

tar -xzvf filename.tar.gz

例如,如果您下载的文件是 sample.tar.gz,则使用:

tar -xzvf sample.tar.gz

这将把内容提取到 您当前所在的文件夹(当前目录) 中。

2.2 为初学者分解 tar -xzvf

它一开始可能看起来令人生畏,但一旦您知道每个部分的意思,它就很简单了。

  • tar :用于处理归档的命令
  • -x :提取
  • -z :处理 gzip 压缩 (.gz)
  • -v :提取时显示文件名(详细)
  • -f :指定文件名(文件)

换句话说:

.> “从指定文件中提取 gzip 压缩的 tar 存档,同时打印详细信息。”

作为初学者,直接记住 tar -xzvf 这一组合 完全没问题。

2.3 提取前:切换到文件所在的文件夹

如果出现 “file not found”,最常见的原因是你在 错误的文件夹 中运行命令。

例如,浏览器下载的文件通常保存在 Downloads 文件夹中。

在终端中,你可以这样切换过去:

cd ~/Downloads

然后检查文件是否真的在那儿:

ls

当看到 sample.tar.gz 后,运行提取命令:

tar -xzvf sample.tar.gz

2.4 如果文件名包含空格

如果文件名中包含空格,命令会在中间断开并导致错误。

示例:

  • my app.tar.gz(包含空格)

在这种情况下,最简单的解决办法是 用双引号将文件名括起来

tar -xzvf "my app.tar.gz"

另外,你也可以使用 \ 转义空格:

tar -xzvf my\ app.tar.gz

对于初学者来说,使用引号的方法通常更易读。

2.5 提取后会怎样?可视化文件夹结构

在多数情况下,提取 tar.gz 会得到类似以下的结构:

  • 提取 sample.tar.gz → 会创建一个 sample/ 文件夹,所有内容都解压到其中

但在少数情况下,tar.gz 可能会 直接在当前文件夹中解压大量文件,而不创建父文件夹。

正因如此,下一节的技巧——预览内容选择提取文件夹——值得学习,以确保安全和有序。

3. 常见提取模式(实用命令,常会用到)

提取 tar.gz 文件并不只是 “全部解压”。在实际使用中,你常会根据情况选择不同的方式。以下是最常用的几种模式。

3.1 解压到当前目录(默认方式)

这是最标准的做法。

tar -xzvf sample.tar.gz

如果不确定解压到了哪里,可以在执行命令的同一位置运行 ls

ls

3.2 解压到指定文件夹(桌面或工作文件夹)

如果想控制文件解压位置,使用 -C 选项。

例如,解压到桌面:

tar -xzvf sample.tar.gz -C ~/Desktop

如果想解压到专用的 work 文件夹,使用如下:

mkdir -p ~/work
tar -xzvf sample.tar.gz -C ~/work

关键是 目标文件夹必须已经存在
如果不存在,先用 mkdir -p 创建,然后再解压。

3.3 提取前预览内容(安全推荐)

“我担心解压后会把文件散落到各处。”
“我不确定里面是否有奇怪的内容或会解压到奇怪的路径。”

在这种情况下,你可以仅列出内容而不进行解压。

tar -tf sample.tar.gz

如果看到类似下面的内容,基本上是安全的:

  • sample/
  • sample/readme.txt
  • sample/bin/...

另一方面,如果它看起来会把大量文件直接倾倒到当前目录,使用 -C 解压到专用文件夹 更安全。

3.4 如果不确定实际格式,使用 file 命令检查

即使扩展名是 .tar.gz,实际内容也可能是其他格式(例如下载失败导致)。

这种情况下,使用 file 来识别:

file sample.tar.gz

示例输出(有效时):

  • gzip compressed data ...

这一次快速检查可以避免大量无意义的错误。

4. 通过图形界面提取(Ubuntu 默认文件管理器)

如果你还不习惯使用 Terminal,你也可以使用 Ubuntu 的 GUI(基于鼠标)工作流程来提取 tar.gz 文件。
特别是当你“只是想快速解压它”时,GUI 会感觉更直观、更少压力。

4.1 逐步操作:通过右键提取(适合初学者)

Ubuntu 的默认文件管理器(Files / Nautilus)可以处理 tar.gz 存档。

  1. 打开 文件管理器
  2. 找到你的 *.tar.gz 文件(通常在 Downloads 中)
  3. 右键单击 该文件
  4. 从菜单中选择以下之一 wp:list /wp:list

    • Extract Here
    • Extract To…

在大多数情况下,Extract Here 是开始的完美选择。

4.2 “Extract Here” 与 “Extract To…”

概念与 Terminal 提取相同:

  • Extract Here → 提取到你当前查看的文件夹中
  • Extract To… → 让你选择位置,如 Desktop 或工作文件夹

如果存档包含大量文件,最好 创建一个专用的工作文件夹并提取到其中,这样你的 Desktop(或 Downloads)就不会杂乱。

4.3 GUI 提取的优缺点

GUI 很方便,但有优势和局限性。

优点

  • 无需记忆命令
  • 出错几率更小(因此输入错误更少)
  • 适合初学者且使用快速

缺点

  • 更难控制提取细节(例如,只提取特定文件,检查日志)
  • 错误信息较少有用(Terminal 输出通常更清晰,便于故障排除)

如果你经常使用 Linux 或从事开发工作,最终值得学习基于 Terminal 的提取——它在需要时给你更多控制。

5. 高级:仅提取特定文件(获取你需要的)

通常,你从 tar.gz 存档中提取所有内容。然而,在某些情况下,你可能想 仅提取特定文件

  • 你只需要从大型存档中获取一个文件
  • 你想先检查配置文件或 README
  • 你不想浪费时间提取所有内容

这就是“仅提取特定文件”变得有用的地方。

5.1 首先,预览内容(列出文件而不提取)

如果你不知道确切路径,提取特定文件会很困难,所以从列出内容开始。

tar -tf sample.tar.gz

查看输出路径(文件名和文件夹结构)并识别你想提取的文件。

例如,你可能会看到这样的内容:

  • sample/README.md
  • sample/config/default.conf
  • sample/bin/tool

5.2 基本语法:仅提取特定文件

一旦你知道确切的文件路径,你可以这样提取它:

tar -xzvf sample.tar.gz sample/README.md

在这个例子中,只有 sample/README.md 会被提取。

提示:最好精确复制 tar -tf 显示的路径。

5.3 你也可以提取存档内的整个文件夹

有时你不想要只有一个文件——你想要特定文件夹下的所有内容。

示例:仅提取 sample/config/ 及其内容

tar -xzvf sample.tar.gz sample/config/

这仅提取 config 文件夹内的文件。

5.4 为什么重要:提取不必要文件可能导致问题

初学者常见错误是不加思考地提取所有内容,这可能导致问题,如:

  • 你的工作文件夹变得杂乱
  • 你丢失了东西的位置
  • 同名文件被覆盖

一旦你习惯了“先预览,然后仅提取你需要的”工作流程,Ubuntu 文件处理会变得更容易和更安全。

6. 常见错误和修复(故障排除检查列表)

提取 tar.gz 文件通常很简单,但在实际使用中,你仍可能遇到错误。
本节涵盖 Ubuntu 初学者面临的最常见问题,使用清晰的“原因 → 修复”方法。

6.1 tar: ...: Cannot open: No such file or directory (文件未找到)

常见原因

  • 您在错误的文件夹中运行命令
  • 您输入的文件名不正确(包括大小写差异)
  • 您没有包含完整的扩展名

如何修复它

首先,检查您的当前位置:

pwd

然后检查该文件夹中是否存在文件:

ls

如果它在 Downloads 中,请切换到那里:

cd ~/Downloads
ls

最后,使用正确的文件名重新运行命令:

tar -xzvf sample.tar.gz

6.2 tar: This does not look like a tar archive (不是 tar 存档)

常见原因

  • 文件扩展名为 .tar.gz,但内容实际上是不同的格式
  • 下载已损坏(您保存了一个 HTML 错误页面)
  • 它实际上是一个 zip 文件,但被重命名为 tar.gz

如何修复它

使用此命令检查文件类型:

file sample.tar.gz

如果您看到类似 HTML document 的内容,则下载很可能失败了。
在这种情况下,请重新下载文件并重试。

6.3 gzip: stdin: not in gzip format (不是 gzip 压缩格式)

常见原因

  • 它实际上不是 .tar.gz(而是 .tar
  • .gz 部分不是真正的 gzip 格式
  • 文件已损坏

如何修复它

仔细检查扩展名。如果它是 .tar 文件,请移除 -z 并运行:

tar -xvf sample.tar

此外,为了确认文件是否损坏,此检查很有用:

file sample.tar.gz

6.4 Permission denied (无写入权限)

常见原因

  • 您正在提取到系统目录(例如 /usr/local/
  • 您在目标文件夹中没有写入权限
  • 外部驱动器挂载的权限问题

初学者的安全修复方法

最安全的方法是在您的主目录下工作:

mkdir -p ~/work
tar -xzvf sample.tar.gz -C ~/work

如果您确实必须提取到仅管理员可访问的位置,请使用 sudo

sudo tar -xzvf sample.tar.gz -C /usr/local

但是,初学者应避免过度使用 sudo
更安全的流程是:先提取到您的主文件夹 → 只移动您需要的内容

6.5 提取成功,但“我不知道文件去了哪里”

常见原因

  • 提取时您不知道当前目录
  • 解包的文件太多,您跟丢了

如何修复它

首先,确认您提取的位置:

pwd

然后查找最近创建的文件/文件夹:

ls -lt

如果您想完全避免这种情况,从一开始就指定提取文件夹:

mkdir -p ~/work/extract
tar -xzvf sample.tar.gz -C ~/work/extract

6.6 提取后文件名变得乱码 (mojibake)

如果 tar.gz 存档包含日文文件名,根据您的环境,它们可能会变得乱码。
这可能是由于创建存档时使用的字符编码差异导致的。

如何处理它

  • 检查您的 Ubuntu 区域设置是否设置为 UTF-8
  • 如果仍然无法工作,请在另一个环境中提取,然后复制文件

检查区域设置的示例命令:

locale

在大多数情况下,如果您看到类似 LANG=ja_JP.UTF-8 的内容,您就不太可能遇到编码问题。

7. 如何创建 tar.gz 文件 (奖励:打包也很有用)

此时,您应该已经能够熟练提取 tar.gz 文件了。但是当您定期使用 Ubuntu 时,您也会遇到想要创建 tar.gz 存档的情况,例如:

  • 将整个文件夹作为单个文件发送
  • 创建备份
  • 组织并存储多个文件

因此,在本节中,我们将介绍创建 tar.gz 存档的基础知识。

7.1 基本命令:将文件夹压缩成 tar.gz

例如,如果您想压缩名为 myfolder 的文件夹,请运行:

tar -czvf myfolder.tar.gz myfolder/

选项的含义如下:

  • -c : 创建
  • -z : 使用 gzip 压缩
  • -v : 详细输出
  • -f : 指定输出文件名

7.2 一次压缩多个文件

您也可以将多个文件和文件夹打包成一个归档。

tar -czvf backup.tar.gz file1.txt file2.txt config/

即使在同一条命令中混合文件和文件夹也能工作。

7.3 如果想在压缩前排除文件(仅概念)

在实际工作中,您可能想避免将某些文件包含在归档中,例如:

  • 缓存文件
  • 大型日志文件
  • 临时文件

在这些情况下,您可以使用 --exclude 选项。但作为初学者,通常只需简单地:

  1. 将想要归档的内容收集到一个工作文件夹中
  2. 将该文件夹压缩为 tar.gz 归档

这种方法简单,并且在大多数情况下都能很好地工作。

8. 总结:在 Ubuntu 上提取 tar.gz 的最快方法

如果您想要在 Ubuntu 上最快提取 tar.gz 文件,以下单行命令在大多数情况下已足够:

tar -xzvf filename.tar.gz

如果想在实际工作中避免错误,请记住以下三点提示:

  • 先预览内容 : tar -tf filename.tar.gz
  • 选择提取文件夹 : tar -xzvf filename.tar.gz -C destination
  • 检查实际文件类型 : file filename.tar.gz

tar.gz 归档在 Ubuntu 上随处可见,一旦您掌握了这些基础,日常工作就会顺畅得多。

FAQ(常见问题)

Q1. 在 Ubuntu 上提取 tar.gz 文件的最简方法是什么?

A. 最可靠的方法是在终端运行以下命令:

tar -xzvf filename.tar.gz

Q2. 提取时可以选择目标文件夹吗?

A. 可以。使用 -C 选项指定提取目标:

tar -xzvf sample.tar.gz -C ~/Desktop

Q3. 可以在不提取的情况下预览内容吗?

A. 可以。使用以下命令列出内容:

tar -tf sample.tar.gz

Q4. 可以使用图形界面(右键)提取 tar.gz 文件吗?

A. 可以。在 Ubuntu 的文件管理器中,右键点击 tar.gz 文件,选择 Extract Here(在此解压)即可解压。

Q5. 出现 not a tar archive 错误,无法解压

A. 文件可能已损坏,或扩展名与实际文件类型不匹配。可使用以下方式检查:

file sample.tar.gz

Q6. 我还想了解如何创建 tar.gz 文件

A. 要将文件夹压缩为 tar.gz 格式,可使用以下命令:

tar -czvf archive.tar.gz foldername/