GNU/Linux >> Tutoriels Linux >  >> Linux

Données compressées non valides--format violé ?

Emplacement alternatif du fixgz de Gzip Utilitaire

Au cas où vous ne trouveriez plus fixgz sur le site de gzip.org, voici un lien vers une version disponible sur archive.org :https://web.archive.org/web/20180624175352/http://www.gzip.org/fixgz.zip.

Code source pour fixgz Utilitaire

De plus, au cas où cela disparaîtrait également, voici le code source du fixgz utilitaire :

/* 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 */
}


Votre commande est correcte. Mais il semble que le fichier soit corrompu. C'est facile à dire, lorsque certains fichiers sont correctement extraits (par exemple ./dokuwiki/.htaccess.dist ), mais pas le reste.

Recréez le dokuwiki.20151010.tar.gz fichier et assurez-vous qu'il ne signale pas d'erreurs en le faisant. Si vous avez téléchargé le fichier quelque part, vérifiez la somme de contrôle ou au moins la taille du fichier.

En fin de compte, soit le fichier a été créé ou téléchargé de manière incorrecte. La commande que vous avez devrait fonctionner correctement avec un .tar.gz fichier.


Linux
  1. Trier une partie d'un fichier ?

  2. Comment rechercher des caractères invalides sur Gedit ?

  3. Compter les lignes dans un fichier ?

  4. Fichier de licence invalide :cPanel et WHM

  5. C ouvert vs ouvert

Comment afficher le contenu d'une archive ou d'un fichier compressé sous Linux

Éditeur VIM

Erreur SSH du fichier id_rsa.pub :format non valide

Comment imprimer la dernière ligne d'un fichier compressé gz dans la ligne de commande ?

cp -L vs cp -H

Compresser chaque fichier d'un répertoire dans son propre fichier compressé