我收到了.tar.gz类型的文件,但我使用的应用程序只接受.zip文件。我需要一种简单的方法将.tar.gz文件转换为.zip而不会丢失任何数据。
重命名为.zip会有效吗?我已经尝试了但是当我点击文件时它会将其显示为无效文件。
对此有何想法或意见?
答案 0 :(得分:8)
您可以使用与此类似的命令将存档 foo.tar.gz
转换为压缩存档foo.zip
:
<德尔> tar xzOf foo.tar.gz | zip foo.zip $(tar tf foo.tar.gz)
德尔>
详细信息: tar xzOf foo.tar.gz
提取(x
)gzip(z
)归档到标准输出(O
)。这里f
用于提供输入文件名。
标准输入通过管道输入 zip
,其第一个参数是要生成的压缩文件的名称。以下参数是要压缩的文件列表,我们可以使用tar
命令直接从t
获取,在初始.tar.gz
文件上运行。
编辑:我认为上面的单行可以用来轻松地将tar档案转换为zip文件。一年后左右再次读取命令,结果看起来很糟糕:它只是从tar存档中获取文件的名称,并从原始文件(非压缩)压缩,如果它们仍在磁盘上。我没有看到如何生成简单的单行,因为您显然无法在命令行上向zip
提供文件的名称和内容(另请参阅this question and its answers)。
因此我们可能需要两个步骤来执行此操作:首先从tar存档解压缩,然后再次压缩。类似的东西:
tar xzf foo.tar.gz && zip foo.zip $(tar tf foo.tar.gz)
我们还可以添加第三部分来删除临时解压缩的文件:&& rm -r -- $(tar tf foo.tar.gz)
,但要小心并确保这不会删除您要保留的内容。
有关详细信息,请查看zip
和tar
实用程序的手册页。