IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Dézipper une archive dont le nom comporte accents, espaces, etc => fichier à l'intérieur non trouvé


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut Dézipper une archive dont le nom comporte accents, espaces, etc => fichier à l'intérieur non trouvé
    Hello,

    dans mon script que je lance depuis mon serveur A, je télécharge des fichiers zip sur un autre serveur B.

    Une fois ces fichiers zip sur serveur A, je fais un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unzip -f "$monZip" -d "$monFolder"
    Le code retour de la commande est à 0.

    Pourtant, juste après je fais un test pour voir si mon fichier contenu dans mon archive est bien présent dans "$monFolder", et là, et bah non :o

    Sachant que, le zip est téléchargé dans une grosse arborescence, qui contient des répertoires avec des espaces, des caractères accentués et que le zip porte un nom du genre monFichier.xls.zip.

    Voici ma trace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    + unzip -f /Gestion des classes/Gestion des classes primaire/2014 A/Entrées & Résultats/S13_2014/MesStats-S13-2014.xls.zip -d /Gestion des classes/Gestion des classes primaire/2014 A/Entrées & Résultats/S13_2014
    + CODE_RETOUR_UNZIP=0
    + [ -f /Gestion des classes/Gestion des classes primaire/2014 A/Entrées & Résultats/S13_2014/MesStats-S13-2014.xls ]
    + Trace_Mes KO fichier dezippe ABSENT /Gestion des classes/Gestion des classes primaire/2014 A/Entrées & Résultats/S13_2014/MesStats-S13-2014.xls

    Vous auriez une idée ?
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    J'imagine que tu imagines que -f veut dire "fichier" et -d veut dire "dossier".
    Plutôt, est-ce que -f veut dire "forcer" (et ne prend pas d'arguments) et -d veut dire "décompresser" (et ne prend pas d'argument) ?

    Vérifie les options sur ton serveur.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Hello,

    l'option -d spécifie bien le répertoire en sortie.

    l'option -f :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    freshen existing files, i.e., extract only those  files
              that  already exist on disk and that are newer than the
              disk copies.
    Du coup je sais pas si elle est vraiment utile là.
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    OK.
    Sinon, à la relecture, une autre chose m'étonne: Tu aurais un dossier à la racine du serveur qui s'appellerait "/Gestion des classes/". Ne serait-ce pas plutôt "./Gestion des classes/" ?

    D'autre part, pourquoi tes traces n'ont plus les protections dues aux guillemets?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Hello,

    oui j'ai bien un répertoire de ce type à la racine.

    Pour la guillemets, ça vient probablement du fait que le path du fichier est une variable? et que dans la trace, le contenu "brut" de la variable est affichée?

    Je continue le debug , ...


    Cdlt.
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 277
    Points : 12 725
    Points
    12 725
    Par défaut
    Bonjour,

    Déjà, l'option "-f" ne fera l'extraction que de fichier existant (et aussi si ceux de l'archive sont plus récent).
    Donc si ton fichier n'existe pas au départ, il ne le créera pas.

    Si tu rajoutes l'option "-d" , l'arborescence que tu mets, dois exister et de plus, il fera l'extract à partir de cette arborescence, donc si dans ton archive.zip tu as par exemple 'toto/titi/fich.txt' et que tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unzip archive.zip -d toto/titi
    avec toto/titi des répertoires déjà existants (car comme dis précédemment, il n'extrairera rien sinon), ton arborescence ressemblera à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto/titi/toto/titi/fich.txt
    Donc ton test suivant aboutira à un echec...
    Cordialement.

  7. #7
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut
    Ok,

    bah du coup là je viens de remplacer par :
    Ca a l'air mieux déjà, et oui, je pense que le problème venait de ces deux options pour le unzip.

    Je fais un dernier test mais ça semble ok.

    Merci.
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

Discussions similaires

  1. [Mail] Pièces jointes dont le nom comportent un accent
    Par papawemba dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2008, 20h50
  2. Réponses: 2
    Dernier message: 10/04/2007, 15h32
  3. Réponses: 6
    Dernier message: 08/02/2007, 14h41
  4. Réponses: 17
    Dernier message: 03/10/2005, 11h16
  5. [Reflection] Executer une fonction dont le nom est contenu dans un String
    Par christobal dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 05/07/2004, 15h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo