HPCで抽出できないように見える拡張子が.Zip
のファイルがたくさんあります。
$ unzip RowlandMetaG_part1.Zip
Archive: RowlandMetaG_part1.Zip
warning [RowlandMetaG_part1.Zip]: 13082642473 extra bytes at beginning or within zipfile
(attempting to process anyway)
error [RowlandMetaG_part1.Zip]: start of central directory not found;
zipfile corrupt.
(please check that you have transferred or created the zipfile in the
appropriate BINARY mode and that you have compiled UnZip properly)
Zipファイル自体のサイズは17377631766バイトです。
ただし、ファイルをMacにダウンロードしてダブルクリックすると、アーカイブユーティリティアプリでファイルを解凍できます(ファイルには約200個のgzip圧縮ファイルが含まれています)。
ファイルを生成した場所は言う:
ファイルは、Windowsを実行しているローカルラボPCでここに圧縮され、Dropboxにアップロードされます。ほとんどの人は問題なく、多くの人がLinux wgetコマンドを使用して、自分のサーバーに直接リンクをダウンロードできます。 、次にそこで解凍します(Linuxユーティリティは通常PCで圧縮されたファイルを処理できます)。
ファイルがDropboxからのものであるという事実に関連があるかどうかはわかりませんが、curl -LO
を使用してダウンロードしました(wget
も試しました-これは何も変更しません)。ファイルが表示されますファイル名の最後に?dl=1
を付けます。そうは言っても、私がdropboxから私のMacにダウンロードするとき、unzip
は同じエラーで失敗します。
私の質問-これをサーバー上で解凍する方法はありますか? Archive Utility.appと同じことを実行するソフトウェア、または使用する解凍プロトコルを決定する他の方法?
編集:コメントに基づく:いくつかの追加情報:
$ file RowlandMetaG_part1.Zip
RowlandMetaG_part3.Zip: Zip archive data, at least v2.0 to extract
$ Zip --version
Copyright (c) 1990-2008 Info-Zip - Type 'Zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-Zip.
また、tar
を試しましたが、成功しませんでした。
$ tar -xvf RowlandMetaG_part1.Zip
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Archive contains `l@\022\t1\fjp\024uP\020' where numeric off_t value expected
tar: Archive contains `\024\311\032b\234\254\006\031' where numeric mode_t value expected
tar: Archive contains `\312\005hЈ\2138vÃ\032p' where numeric time_t value expected
# etc...
そして、私はこのようなディレクトリにがらくたになります:
$ ls
???MK??%b???mv?}??????@*??TZ?S?? ??????+??}n>,!???ӟw~?i?(??5?#?ʳ??z0?[?Ed?@?쑱??lT?d???A??T???H??
,??Y??:???'w,??+?ԌU??Wwxm???e~??ZJ]y??ˤ??4?SX?=y$Ʌ{N\?P}x~~?T?3????y?????'
ファイルが非常に大きいため、Zip
はそれを処理できません(2Gbで最大になります)。代わりに、jar
を使用できます。
$ jar xvf RowlandMetaG_part1.Zip
inflated: RowlandMetaG_part1/296E-7-26-17-O_S23_L001_R1_001.fastq.gz
# etc...
ファイルは「.Zip」で終わりますが、Zipファイルではない可能性があります。
file
ユーティリティを使用して、これがZipファイルであるかどうかを確認できます(同時に、実際のファイル形式を判別できます)。
file RowlandMetaG_part1.Zip
ファイル形式が決定したら、適切なツールを使用してアーカイブを解除できます。
同じ問題に遭遇しましたが、まだ解決できませんでした。もしそうなら、私はこの答えを更新します。
ただし、いくつかのことをまっすぐに設定するには:
OPはファイルがZipファイルであると信じることができます。
Linuxの解凍ツールにあると思われる「問題」は、ファイルの最後に中央ディレクトリがないが、代わりに順番に解凍する必要があることであり、Linuxツールはそれを実行できないようです。
理論的には、Zip
ツールは、アーカイブを順番にスキャンし、そこから新しいZipファイルを作成する-FF
オプションを使用して、これを修正できるはずです。ただし、これは大きな(> 4GB)zipでは機能しないことが判明しました-最後に中央ディレクトリがない、さらに別の読み取り不可能なZipファイルが作成されます。
背景: [〜#〜] pkzip [〜#〜] アーカイブ形式では、各アーカイブアイテムに関する情報が2つの場所に保存されます。各圧縮ストリームの前に1回(長さ情報は必須ですが、正しくない)そして最後にすべての保存されたアイテムのリストの最後に、これは一種のオプションです(まあ、標準の定義では常に1つあるはずですが、最初のエントリを通過することでフォールバックも可能です、AppleのZipツールは明らかにそうします)。
問題をさらに分析した後、問題は次のとおりだと思います。
多分tarユーティリティでそれを抽出してみてください
tar xvf <file-name>
たぶん、このリンクは関連しているかもしれません:
https://Apple.stackexchange.com/questions/208139/how-to-deal-with-unzip-error-on-a-large-file-in-osx