快速回答:

快速回答:

我从客户端收到一个巨大的 .tar.gz 文件,其中包含约 800 mb 的图像文件(未压缩时)。我们托管公司的 ftp 非常慢,因此在本地提取所有文件并通过 ftp 发送它们并不实际。我能够将 .tar.gz 文件通过 ftp 传输到我们的托管站点,但当我 ssh 进入我的目录并尝试使用 unzip 时,它给出了此错误:

[esthers@clients locations]$ unzip community_images.tar.gz
Archive:  community_images.tar.gz
  End-of-central-directory signature not found.  Either this file is not a zipfile, or it constitutes one disk of a multi-part archive.  In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive.
note:  community_images.tar.gz may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of community_images.tar.gz or community_images.tar.gz.zip, and cannot find community_images.tar.gz.ZIP, period.

我需要使用什么命令来提取 .tar.gz 文件中的所有文件?

答案1

输入man tar更多信息,但是这个命令应该可以解决问题:

tar -xvzf community_images.tar.gz

进一步解释一下,tar将所有文件收集到一个包中community_images.tar。gzip 程序应用了压缩,因此使用了gz扩展名。因此该命令做了几件事:

  • f:这必须是命令的最后一个标志,并且 tarFile 必须紧跟其后。它告诉 tar 压缩文件的名称和路径。
  • z:告诉 tar 使用 g 解压缩档案知识产权
  • x:tar 可以收集文件或 eX跟踪他们。x是后者。
  • v:使 tar 说话很多。erbose 输出显示所有正在提取的文件。

提取成C自定义文件夹,添加-C您选择的文件夹名称的选项:

tar -xvzf community_images.tar.gz -C some_custom_folder_name

答案2

如果您希望将文件提取到特定目标,您可以添加-C /destination/path/
确保先创建目录,在本例中为:~/Pictures/Community

例子:

mkdir ~/Pictures/Community
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/

你可以很容易地记住它,如果你考虑告诉柏油到 eXF伊莱

终端完成的进程的 gif

笔记:请记住,您可以在手册页中使用?+term 进行搜索,然后使用nN转到您要查找的术语的下一个或上一个实例。

答案3

在某些时候tar升级为自动解压。您现在需要的是:

tar xf community_images.tar.gz

同样的解释也适用:

  • f:这必须是命令的最后一个标志,并且 tarFile 必须紧跟其后。它告诉 tar 压缩文件的名称和路径。
  • x:电子X整理文件。

请注意,命令标志中没有连字符。这是因为大多数版本的 tar 都允许 gnu 和 bsd 样式选项(简单地说,gnu 需要连字符,而 bsd 不需要)。

答案4

快速回答:

tar -xvf  <.tar file> or <.tar.xz file>
tar -xzvf <.tar.gz file>
tar -xjvf <.tar.bz2 file>

[笔记]:

  • -v详细列出已处理的文件。
  • -z通过 gzip 过滤档案。
  • -f使用存档文件或设备 ARCHIVE。
  • -x从档案中提取文件。
  • -jbzip2。
  • tar -xfarchive.tar # 从中提取所有文件archive.tar

相关内容