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