当前位置: 首页 > 知识库问答 >
问题:

无效的压缩数据-违反了格式?

公冶宏深
2023-03-14

我想从xxx.tar中提取数据。通过使用<code>tar-zxvf</code>命令创建gzhtml" target="_blank">文件,但我遇到了一些错误,下面是详细信息:

Suse11-config server:/home/webapp/wiki#tar-zxvfdokuwiki.20151010.tar.gz

./嘟嘟/

./dokuwiki/._.htaccess.dist

./dokuwiki/.htaccess.dist

./dokuwiki/bin/

./dokuwiki/conf/

./dokuwiki/._COPYING

/dokuwiki/复制

焦油:跳到下一个头

gzip:stdin:压缩数据无效--格式冲突

TAR:儿童返回状态1

tar:错误不可恢复:立即退出

但是这个命令tar-zxvfdokuwiki.20151010.tar.gzMacOS x系统中运行良好,我想不出原因。

共有3个答案

邓令雪
2023-03-14

Gzip在他们的常见问题解答中对此错误进行了预期的修复。提供的实用程序在我的情况下没有帮助,但它可能会修复您的存档。根据格西普:

如果您已经以ASCII模式传输了一个文件,并且您不再能够访问原始文件,您可以尝试使用程序fixgz来删除传输过程中插入的额外CR(回车)字节。一个Windows 9x/NT/2000/ME/XP二进制在这里。但绝对不能保证这将实际修复您的文件。结论:千万不要以ASCII模式传输二进制文件。

狄阳秋
2023-03-14

如果您在gzip.org的网站上再也找不到< code>fixgz,以下是archive.org上可用版本的链接:https://web . archive . org/web/20180624175352/http://www . gzip . org/fix gz . zip。

此外,如果它也消失了,下面是< code>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 <jloup@gzip.org>
 *   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 */
}

锺离锦
2023-03-14

您的命令是正确的。但文件似乎已损坏。很容易判断,何时正确提取了某些文件(例如./dokuwiki/.htaccess.dist),但其余文件则不然。

重新创建< code > dokuwiki . 2015 10 10 . tar . gz 文件,并确保在执行此操作时不会报告错误。如果您从某处下载了文件,请验证校验和,或者至少验证文件大小。

底线是,文件创建或下载不正确。您拥有的命令应该可以很好地处理.tar.gz文件。

 类似资料:
  • 我得到无效的zip,当写入文件以下代码: 我将其写入文件的方式是: 我做错了什么?

  • 我正在向我的远程服务器发送以将其存储在文件系统中。为此,我使用Java协议。为了避免网络带宽和TCP输入/输出缓冲内存,我以压缩格式发送数据。但是,我无法解压缩从客户端收到的数据。我得到了ZLIB输入流的异常。这是因为服务器正在接收。 Java代码 客户 服务器 有没有办法在Socket中以GZIP压缩格式发送数据?

  • 我想知道我们可以在多大程度上进行无损数据压缩;我无法找到一个无损算法的在线模拟器来执行一些经验测试。我可以自己做一个,但不幸的是,我在这段时间没有足够的时间;我仍然对我的直觉感到好奇,我将解释一下。 让我们只看两种更流行的算法:

  • 问题内容: 我正在使用以下代码来压缩和解压缩字符串数据,但是我面临的问题是,它很容易被压缩而不会出错,但是decompress方法会引发以下错误。 线程“主”中的异常java.io.IOException:不是GZIP格式 仍然不知道如何解决此问题!!! 问题答案: 这是因为 发送您可以从中获得的,并在其中使用它来构建您的。以下是需要在代码中进行的更改。

  • 问题内容: 我想编写一个存储后端来存储更大的数据块。数据可以是任何东西,但主要是二进制文件(图像,pdf,jar文件)或文本文件(xml,jsp,js,html,java …)。我发现大多数数据已经被压缩。如果所有内容都经过压缩,则可以节省大约15%的磁盘空间。 我正在寻找最高效的算法,该算法可以高概率地预测可以压缩或不压缩(无损压缩)大块数据(假设无损压缩),而不必尽可能查看所有数据。 压缩算法