zip 到扩展名不是“.zip”的文件

zip 到扩展名不是“.zip”的文件

zip -r ./compressed.resource ./file1.js ./file1.js.map

我正在尝试将 2 个文件压缩成一个以.zip

但是,当我运行这个时出现错误:

> zip -r ./compressed.resource ./file1.js ./file1.js.map

        zip warning: missing end signature--probably not a zip file (did you
        zip warning: remember to use binary mode when you transferred it?)
        zip warning: (if you are trying to read a damaged archive try -F)

zip error: Zip file structure invalid (./compressed.resource)

可以保留.resource扩展吗?

答案1

这可以作为一行程序完成,但不是跨平台的方式,也不是单个命令。

Zip 集成到许多系统中,但通常不作为离散的可执行文件,并且跨平台的命令不一致。

然而,有一点是一致的,那就是 Zip 会压缩文件,并且不会重命名文件扩展名。

为了压缩和重命名,您需要使用两个离散命令。

答案2

由于您没有提供任何有关操作系统、软件版本等的信息。我只是假设您使用的是最新的 Linux 发行版。虽然 zip 是一种存档格式,但它只允许以 .zip 结尾的文件。使用不同的存档程序(如tarmake)并告诉它应用压缩(请参阅手册页,它真的很有见地)。如果您提供它需要的所有参数,Tar 将允许您将输出命名为您想要的任何名称。这就是您获得 .tgz bzw. tar.gz 或 tar.bz2 或任何其他名称的方式。

相关内容