• [^] # Re: Boucle correcte - destination erroné

    Posté par . En réponse au message tar : <chemin ver le fichier/file.tar.gz> : non trouvé dans l'archive. Évalué à 1.

    J'ai bien essayé et testé plusieurs solutions, l'exécution se termine soit en échec soit en erroné.
    Voic le code retouché.

    #!/bin/bash
    liste_rep="folder/*"
    folder="$(ls folder)"
    echo "LISTE REP :" $liste_rep
     for rep in "$liste_rep"
     do
     echo "AFFICHE REP :"$rep
     #for fichier in "$(ls /folder/*)" # test
     for fichier in $liste_rep/*.tar.gz
     do
     #cd $liste_rep
     echo "FICHIER :" $fichier
     tar -zxvf $fichier --directory $liste_rep/
     done
     done
    exit
    end

    J'ai bien effectué des changements de répertoire rien y fait.
    J'ai rajouté une variable

    ```ruby
    folder="$(ls folder)" ##afin de recupérer uniquement les sub dossier 001 002 003 004

    end
    ```

    Les contenu des variables s'affiche correctement
    ruby
    [presta2] $ echo $liste_rep
    folder/001 folder/002 folder/003 folder/004
    -(jeu. juil. 12 10:13:41)--(mrvpgsa001:~)-
    [presta2] $ echo $folder
    001 002 003 004
    end

    Resultat d’exécution
    J'ai insérer 3 outputs à chaque étape de la boucle,

    LISTE REP : folder/001 folder/002 folder/003 folder/004 --->> Liste de srepertoires est correcte
    AFFICHE REP :folder/* --->> !!! 
    FICHIER : folder/001/CARDV022A0.tar.gz --> La variable fichier est bien attribué
    end

    tar: folder/002 : non trouvé dans l'archive ---> Comment non tropuvé si --> tar -zxvf $fichier
    tar: folder/003 : non trouvé dans l'archive
    tar: folder/004 : non trouvé dans l'archive
    tar: Arrêt avec code d'échec à cause des erreurs précédentes
    FICHIER : folder/001/CARDV02976.tar.gz
    tar: folder/002 : non trouvé dans l'archive
    tar: folder/003 : non trouvé dans l'archive
    tar: folder/004 : non trouvé dans l'archive
    tar: Arrêt avec code d'échec à cause des erreurs précédentes
    FICHIER : folder/001/CARDV02A0.tar.gz
    tar: folder/002 : non trouvé dans l'archive
    tar: folder/003 : non trouvé dans l'archive
    tar: folder/004 : non trouvé dans l'archive
    tar: Arrêt avec code d'échec à cause des erreurs précédentes
    FICHIER : folder/001/CARDV976.tar.gz

    Si on enlever le commentaire sur #cd $liste_rep
    Les message d'erreur est la suivante

    [presta2] $ ./decomp2.sh*
    LISTE REP : folder/001 folder/002 folder/003 folder/004
    AFFICHE REP :folder/*
    FICHIER : folder/001/CARDV022A0.tar.gz
    tar (child): folder/001/CARDV022A0.tar.gz : la fonction open a échoué: Aucun fichier ou dossier de ce type
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    FICHIER : folder/001/CARDV02976.tar.gz
    tar (child): folder/001/CARDV02976.tar.gz : la fonction open a échoué: Aucun fichier ou dossier de ce type
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now

    Des idées?
    Merci d'avance