问题描述
我从客户端收到一个巨大的.tar.gz文件,其中包含大约800 MB的图像文件(未压缩时)。我们托管公司的ftp速度非常慢,因此在本地提取所有文件并通过ftp发送它们是不实际的。我能够将.tar.gz文件ftp到我们的托管站点,但是当我进入我的目录并尝试使用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文件中的所有文件?
最佳解决思路
输入man tar
获取更多信息,但是这个命令应该可以做到这一点:
tar -xvzf community_images.tar.gz
为了进一步解释,tar将所有文件收集到一个包community_images.tar
中。 gzip程序应用了压缩,因此是gz扩展。所以这个命令做了几件事情:
-
f
:这必须是命令的最后一个标记,并且tar文件必须紧跟在后面。它告诉tar压缩文件的名称和路径。 -
z
:通知tar使用gzip解压缩存档 -
x
:tar可以收集文件或提取它们。x
做后者。 -
v
:让焦油说话很多。详细输出显示所有正在提取的文件。
次佳解决思路
如果你想把文件提取到特定的目的地,你可以添加-C /destination/path/
例:
tar xf community_images.tar.gz -C /home/emmys/Pictures/Community/
如果您考虑将焦油告知某个文件,您可以轻松记住它
注意:确保您首先创建目录(mkdir ~/Pictures/Community
)。
第三种解决思路
在某一时刻,tar
已升级到auto-decompress。你现在需要的是:
tar xf community_images.tar.gz
同样的解释适用于:
-
f
:这必须是命令的最后一个标记,并且tar文件必须紧跟在后面。它告诉tar压缩文件的名称和路径。 -
x
:提取文件。
请注意缺少连字符的命令标志。这是因为大多数tar版本都允许gnu和bsd样式选项(简单地说,gnu需要连字符,bsd不需要)。