![Unix tar 压缩文件夹无法在 Windows 上打开](https://linux22.com/image/1323036/Unix%20tar%20%E5%8E%8B%E7%BC%A9%E6%96%87%E4%BB%B6%E5%A4%B9%E6%97%A0%E6%B3%95%E5%9C%A8%20Windows%20%E4%B8%8A%E6%89%93%E5%BC%80.png)
我使用命令tar -cvzf upload.tar upload
来压缩我的上传文件夹,但是当我使用 7-Zip 在 Windows 上提取它时,它只显示为一个文件,而不是文件夹。
而且 uplad 文件夹不是符号链接 - 它是真实目录。文件大小正确,但它不是 Windows 上的文件夹
好的 - 找到问题了。由 -z 标志引起。因此运行tar -cvf upload.tar upload
正常。为什么会这样?文档说 z 标志 - “自动压缩或解压缩文件”。
为什么会这样?
答案1
您可能通过在 gzip 文件上使用扩展名误导了 Windows 实用程序tar
。由于您使用标志使用 gzip 压缩-z
,因此常见的文件类型是.tgz
和.tar.gz
。我不知道 7-zip 是否支持此功能。或者,您可以删除该z
标志。
答案2
这是由于历史原因。
在过去,当压缩仍然非常昂贵的时候,有一个程序可以将数据备份到磁带上。它被称为电视猿应收账款chive。unix 上的磁带设备只是一个文件,因此也可以将此存档转储到文件中。该文件的扩展名通常为.tar
。
如果您想要压缩此文件(例如,刚刚制作的备份),您可以使用compress
添加扩展名的程序.Z
,然后生成的文件将获得两个扩展名。(file.tar.Z
)
后来的版本允许您将这些与-z
tar 中的标志相结合。他们还用 gzip 代替了 compress。生成的 gzip 压缩 tar 文件通常具有扩展名.tar.gz
,或在某些 Windows 计算机上(由于 8.3 的限制).tgz
。
答案3
在 7-zip 中向右滚动,您可能会看到它显示完整的文件夹路径。
如果将其拖到桌面,它会写入文件夹(以及任何子文件夹/文件)吗?