GNU/Linux >> Linux の 問題 >  >> Linux

無効な圧縮データ -- 形式に違反していますか?

Gzip の fixgz の別の場所 ユーティリティ

fixgz が見つからない場合 gzip.org の Web サイトには、archive.org で入手可能なバージョンへのリンクがあります:https://web.archive.org/web/20180624175352/http://www.gzip.org/fixgz.zip.

fixgz のソースコード ユーティリティ

また、それも消えた場合のために、以下に fixgz のソースコードを示します ユーティリティ:

/* fixgz attempts to fix a binary file transferred in ascii mode by
 * removing each extra CR when it followed by LF.
 * usage: fixgz  bad.gz fixed.gz

 * Copyright 1998 Jean-loup Gailly <[email protected]>
 *   This software is provided 'as-is', without any express or implied
 * warranty.  In no event will the author be held liable for any damages
 * arising from the use of this software.

 * Permission is granted to anyone to use this software for any purpose,
 * including commercial applications, and to alter it and redistribute it
 * freely.
 */

#include <stdio.h>

int main(argc, argv)
     int argc;
     char **argv;
{
    int c1, c2; /* input bytes */
    FILE *in;   /* corrupted input file */
    FILE *out;  /* fixed output file */

    if (argc <= 2) {
    fprintf(stderr, "usage: fixgz bad.gz fixed.gz\n");
    exit(1);
    }
    in  = fopen(argv[1], "rb");
    if (in == NULL) {
    fprintf(stderr, "fixgz: cannot open %s\n", argv[1]);
    exit(1);
    }
    out = fopen(argv[2], "wb");
    if (in == NULL) {
    fprintf(stderr, "fixgz: cannot create %s\n", argv[2]);
    exit(1);
    }

    c1 = fgetc(in);

    while ((c2 = fgetc(in)) != EOF) {
    if (c1 != '\r' || c2 != '\n') {
        fputc(c1, out);
    }
    c1 = c2;
    }
    if (c1 != EOF) {
    fputc(c1, out);
    }
    exit(0);
    return 0; /* avoid warning */
}


あなたの命令は正しいです。しかし、ファイルが壊れているようです。一部のファイルが正しく抽出されている場合 (たとえば、./dokuwiki/.htaccess.dist) は簡単にわかります。 )、しかし残りはそうではありません。

dokuwiki.20151010.tar.gz を再作成します どこかからファイルをダウンロードした場合は、チェックサム、または少なくともファイル サイズを確認してください。

肝心なのは、ファイルが正しく作成されていないか、ダウンロードされていることです。コマンドは .tar.gz で正常に動作するはずです ファイル。


Linux
  1. Geditで無効な文字をスキャンする方法は?

  2. 無効なライセンスファイル:cPanel&WHM

  3. C fopen と open

  1. 圧縮 tar 内の単一ファイルの更新

  2. glibc:elf ファイルの OS ABI が無効です

  3. id_rsa.pub ファイルの SSH エラー:無効な形式

  1. リダイレクトの順序は?

  2. コマンドラインで gz 圧縮ファイルの最後の行を出力するには?

  3. cp -L 対 cp -H