Forums

  •  

  • Je vais dans un répertoire (www)
    ericc@predator:~$ cd www

    J'archive et compresse en zip le contenu du répertoire gettext/
    ericc@predator:~/www$ zip -r9 gettext ./gettext/
    adding: gettext/ (stored 0%)
    adding: gettext/localization.php (deflated 36%)
    adding: gettext/md5sum.txt (deflated 43%)
    adding: gettext/locale/ (stored 0%)
    adding: gettext/locale/nl_NL/ (stored 0%)
    adding: gettext/locale/nl_NL/LC_MESSAGES/ (stored 0%)
    adding: gettext/locale/nl_NL/LC_MESSAGES/messages.mo (deflated 33%)
    adding: gettext/locale/nl_NL/LC_MESSAGES/messages.po (deflated 41%)
    adding: gettext/locale/fr_FR/ (stored 0%)
    adding: gettext/locale/fr_FR/LC_MESSAGES/ (stored 0%)
    adding: gettext/locale/fr_FR/LC_MESSAGES/messages.mo (deflated 34%)
    adding: gettext/locale/fr_FR/LC_MESSAGES/messages.po (deflated 42%)
    adding: gettext/bench.php (deflated 40%)
    adding: gettext/index.php (deflated 31%)
    adding: gettext/filesystem.php (deflated 67%)

    Je vérifie ce que vois "file"
    ericc@predator:~/www$ file gettext.zip
    gettext.zip: Zip archive data, at least v1.0 to extract c'est correct

    Je change le nom du fichier en gettext.txt, normalement sous Windows cela suffit pour le planter!
    ericc@predator:~/www$ mv gettext.zip gettext.txt

    Je vérifie ce que vois "file"
    ericc@predator:~/www$ file gettext.txt
    gettext.txt: Zip archive data, at least v1.0 to extract
    c'est toujours correct

    J'archive en tar le même répertoire
    ericc@predator:~/www$ tar -cf gettext.tar gettext/*

    Je vérifie ce que vois "file"
    ericc@predator:~/www$ file gettext.tar
    gettext.tar: POSIX tar archive (GNU)
    c'est correct


    J'archive en tar et compresse en bzip2 le même répertoire mais je conserve l'extension .tar seulement (logiquement je devrais utiliser .tar.bz2)
    ericc@predator:~/www$ tar -cjf gettext.tar gettext/*

    Je vérifie ce que vois "file"
    ericc@predator:~/www$ file gettext.tar
    gettext.tar: bzip2 compressed data, block size = 900k
    c'est correct

    Je change le nom en 'toto' sans extension
    ericc@predator:~/www$ mv gettext.tar toto

    Je vérifie ce que vois "file"
    ericc@predator:~/www$ file toto
    toto: bzip2 compressed data, block size = 900k
    c'est toujours correct

    je décompresse toto
    ericc@predator:~/www$ bunzip2 toto
    bunzip2: Can't guess original name for toto -- using toto.out
    bunzip ne sait pas retrouver le nom d'origine parce qu'il n'y a pas d'extension, alors il le renomme toto.out

    Je vérifie ce que vois "file"
    ericc@predator:~/www$ file toto.out
    toto.out: POSIX tar archive (GNU)
    c'est toujours correct, fichier .tar.bz2 à l'origine, si je décompresse le bzip2, le résultat est en tar

    Sous Linux, les commandes et programmes ne s'occupe que très rarement du nom du fichier et de son extension qui peuvent être changés
    Au lieu de cela, ils utilisent ce que l'on appelle le "File Magic Number" qui sont une série de quelques octets (4 si mes souvenirs sont exacts) qui se trouvent au début de chaque fichier et permettent d'identifier le contenu de celui-ci


    ericc me
     

  • et si je te balance le fichier tu voies ? 39Mo
     

  • Pourquoi ?
    Avec ces explications, tu n'y arrive toujours pas ?

    vas y envois le fichier ...

    ericc me
     

  • Bon, j'envoie ... je te file lien lien dés qu'il est prêt !

    Juste :
    tu dé-archive ...
    tu ré-archive ..

    Tu devrais trouver une difference, non pas dans le nombre d'octet, mais dans le fichier lui même !
     

  • et mon script pour mes modif ... mais tant qu'un vulgaire tar -c et tar -x marche pô!

    #!/bin/bash
    tar -xf Cx_u_161672.tar # extraction du contenu de Cx_u_161672.tar
    rm -f Cx_u_161672.tar # effacement de Cx_u_161672.tar pour ne pas recompresser inutilement
    tar -xf inforad.tgz # extraction de l'arborescence de inforad.tgz celui dans lequel il y a images et sons
    rm -f inforad.tgz # efface l'ancien inforad.tgz pour ne pas recompresser inutilement
    cp -f modif.wav usr/local/inforad/lib/sound/STARTUP.wav # remplacement du fichier son dans l'arborescence
    find usr/ -type f -print0 | xargs -0 md5sum > inforad.md5 # calcul md5 du nouveau inforad.md5 avec le nouvel STARTUP.wav
    tar -czf inforad.tgz usr/ # on compresse l'arborescence dans inforad.tar
    rm -rf usr #efface l'arborescence usr/....
    chaine=`md5sum inforad.tgz | cut -d" " -f1` # calcul md5 du nouvel inforad.tgz
    var=${chaine}' *-'
    echo ${var} > inforad.tgz.md5
    tar -cf resultat/Cx_u_161672.tar *.* # compression Cx_u_161672.tar dans un repertoire resultat
     

  • Est ce vraiment important d'avoir le même MD5 ?
    Si oui pourquoi ?

    Je dois dire que il y a peux de chance que tu retombe exactement sur le même MD5 !
    car tar, en plus des fichiers, conserve un certain nombre d'information comme la date et l'heure, le owner du fichier et les droits (chmod)
    Ton fichier :
    ericc@predator:~/Test$ tar tvf Cx_u_161672.tar
    -rw-r--r-- 0/0 43 2011-04-05 17:39 bash.md5
    -rw-r--r-- 0/0 256 2011-04-05 17:40 bash.md5.sgn
    -rw-r--r-- 0/0 366655 2011-04-05 17:39 bash.tgz
    -rw-r--r-- 0/0 36 2011-04-05 17:39 bash.tgz.md5
    -rw-r--r-- 0/0 256 2011-04-05 17:40 bash.tgz.md5.sgn
    -rw-r--r-- 0/0 40 2011-04-05 17:39 build.md5
    -rw-r--r-- 0/0 256 2011-04-05 17:40 build.md5.sgn
    -rw-r--r-- 0/0 167 2011-04-05 17:39 build.tgz
    -rw-r--r-- 0/0 36 2011-04-05 17:39 build.tgz.md5
    -rw-r--r-- 0/0 256 2011-04-05 17:40 build.tgz.md5.sgn
    -rw-r--r-- 0/0 46 2011-04-05 17:39 busybox.md5
    -rw-r--r-- 0/0 256 2011-04-05 17:40 busybox.md5.sgn
    -rw-r--r-- 0/0 400143 2011-04-05 17:39 busybox.tgz
    -rw-r--r-- 0/0 36 2011-04-05 17:39 busybox.tgz.md5
    -rw-r--r-- 0/0 256 2011-04-05 17:40 busybox.tgz.md5.sgn


    Après "décompression", "re-compression" (ce n'est pas de la compression mais bon) :
    ericc@predator:~/Test/marco$ tar tvf Cx_u_16672.tar
    -rw-r--r-- ericc/ericc 43 2011-04-05 17:39 bash.md5
    -rw-r--r-- ericc/ericc 256 2011-04-05 17:40 bash.md5.sgn
    -rw-r--r-- ericc/ericc 366655 2011-04-05 17:39 bash.tgz
    -rw-r--r-- ericc/ericc 36 2011-04-05 17:39 bash.tgz.md5
    -rw-r--r-- ericc/ericc 256 2011-04-05 17:40 bash.tgz.md5.sgn
    -rw-r--r-- ericc/ericc 40 2011-04-05 17:39 build.md5
    -rw-r--r-- ericc/ericc 256 2011-04-05 17:40 build.md5.sgn
    -rw-r--r-- ericc/ericc 167 2011-04-05 17:39 build.tgz
    -rw-r--r-- ericc/ericc 36 2011-04-05 17:39 build.tgz.md5
    -rw-r--r-- ericc/ericc 256 2011-04-05 17:40 build.tgz.md5.sgn
    -rw-r--r-- ericc/ericc 46 2011-04-05 17:39 busybox.md5
    -rw-r--r-- ericc/ericc 256 2011-04-05 17:40 busybox.md5.sgn
    -rw-r--r-- ericc/ericc 400143 2011-04-05 17:39 busybox.tgz
    -rw-r--r-- ericc/ericc 36 2011-04-05 17:39 busybox.tgz.md5


    On voit déjà immédiatement que le owner de tout les fichiers à changer .... donc forcement le md5 va changé

    De plus, il y a des algorithmes d'agrégations différents ... rolleyes

    je cherche dans la doc de tar pour voir si je trouve quelque chose

    ericc me
     

  • J'ai cherché et testé pas mal de choses mais c'est quasiment mission impossible !!

    De plus, je ne vois pas l’intérêt ...
    Si tu change quelque chose dans le fichier, que tu remplace un .wav ou autre, alors nécessairement le md5 va changer et il n'y a qu'1 chance sur des milliers pour que tu puisse avoir le même hash

    ericc me
     


  • J'ai cherché et testé pas mal de choses mais c'est quasiment mission impossible !!

    De plus, je ne vois pas l’intérêt ...
    Si tu change quelque chose dans le fichier, que tu remplace un .wav ou autre, alors nécessairement le md5 va changer et il n'y a qu'1 chance sur des milliers pour que tu puisse avoir le même hash

    ericc me

    ericc

    Salut ericc !!
    Oui, j'ai bien pigé ... si je change un truc ... le md5 est plus le même ! heureusement !
    Mais si tu change RIEN ! ........

    Je fichier sert pour la mise a jour !
    Tel quel, je le charge, ca marche !
    Tel quel je de-archive, je re-archive ... ca marche pô ! ...gnéééééééé !!!
     

  • comme je t'ai montré plus haut, dès que tu décompresse, les fichiers prennent ton login comme "owner"
    Donc ils sont modifiés ... donc le md5 change

    Il faut voir dans la doc de tar comment faire pour qu'il décompresse sans changer le owner !
    J'ai déjà trouver l'option pour qu'il enregistre le n° d'utilisateur plutot que le nom :
    '--numeric-owner'

    voir doc :

    et il n'y a pas de fichier md5 à la racine avec le package ?
    si non, alors c'est probablement un soucis de "owner", le script qui fait la mise à jour se retrouve sans les droits pour modifier les fichiers (à mon avis)

    ericc me
     

Modérateur(s): ericc, toxxic, mich_belge