我有一个bash脚本,利用inotify-tools等待.zip文件被删除到根目录下的子结构中。从那里他们被解压缩到另一个目录。
当我使用WinSCP复制.zip文件时,脚本正确执行。使用Filezilla复制.zip文件会导致此错误:
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
我已经搜索了这个错误,两个主要问题似乎是Linux的解压缩功能的旧版本,我有一个较新版本,并尝试复制>的文件。 2gb(此文件不是)
任何人都知道这里的问题,在我看来,Linux在将脚本完全复制到磁盘之前试图解压缩脚本?就像我说的,只有filezilla有这个错误,我没有用winSCP
答案 0 :(得分:0)
我相信你的主要问题是你在传输ZIP时会尝试处理它。可能会发生的是,只要启动传输,WinSCP就会创建一个临时文件来存储传输的数据。在zip文件被完全转移之前,该事件将触发您的脚本。
这可以解释为什么会出现此错误:
找不到中心目录签名。这个文件不是 一个zipfile,
因此,解决方案是将两个文件夹用于传输,一个用于compelete。它们应该在同一个文件系统中。在传输完成时,只需从一个文件夹移动到另一个文件夹。