在Linux上`````.zip`时出错

Rem*_*i.b 14 linux macos zip tar

我使用zip命令行和-r选项在Mac OSX上压缩了一个目录.我scp是.zip 在Linux上运行的集群.

如果我尝试解压缩.zip与

tar -vxzf foo.zip

在我的机器上它工作.但是相同的命令在群集上不起作用.我收到了错误

gzip: stdin has more than one entry--rest ignored
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Ian*_*rts 29

该tar命令用于解压缩TAR存档,而不是压缩文件.您应该使用unzip命令而不是tar:

unzip foo.zip
Run Code Online (Sandbox Code Playgroud)

或者tar.gz在Mac端进行存档而不是zip文件

tar -cvzf foo.tar.gz ....
Run Code Online (Sandbox Code Playgroud)

您可以使用tarLinux端的现有命令解压缩.

  • Mac上的@ Remi.b tar是BSD tar的一个版本,而不是Linux发行版上使用的GNU tar.[苹果手册页](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/tar.1.html)建议Mac tar可以处理zip文件,但GNU tar可以' t(在另一个答案中描述的有限情况除外). (4认同)

tux*_*ux3 6

这个错误:

gzip: stdin has more than one entry--rest ignored
Run Code Online (Sandbox Code Playgroud)

就是说tar正试图就好像它是一个gzip压缩,这并不总是有效(见"解压缩到您的zip压缩包的拉链创建的文件可以用gzip解压只有当他们与'通缩’的方法压缩单员"了解更多信息).

您应该使用unzip foo.zip解压缩zip存档.