1

ルートの下の下部構造に.zipファイルがドロップされるのを待つためにinotify-toolsを利用するbashスクリプトがあります。そこから、それらは別のディレクトリに解凍されます。

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.

私はこのエラーをグーグルで検索しましたが、2つの主な問題は、新しいバージョンのLinuxの解凍機能の古いバージョンと2GBを超えるファイルをコピーしようとしていることです(このファイルはそうではありません)

ここで問題を知っている人はいますが、Linuxがスクリプトをディスクに完全にコピーする前に解凍しようとしているように見えますか?私が言ったように、filezillaだけがこのエラーを持っています、私はwinSCPでそれを取得しません

4

1 に答える 1

0

あなたの主な問題は、ZIPがまだ転送されているときにZIPを処理しようとすることだと思います. おそらく、転送が開始されるとすぐに、WinSCP は転送されたデータを保存する一時ファイルを作成します。そのイベントは、zip ファイルが完全に転送される前にスクリプトを起動します。

このエラーが発生する理由は次のとおりです。

中央ディレクトリの終わりの署名が見つかりません。このファイルはzipファイルではなく、

したがって、解決策は、転送用と完了用の 2 つのフォルダーを用意することです。それらは同じファイルシステムにある必要があります。転送が完了したら、あるフォルダーから別のフォルダーに移動するだけです。

于 2013-07-17T12:54:04.383 に答える