• [^] # 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. Dernière modification le 12 juillet 2018 à 14:58.

    J'ai tout testé, malheureusement sans sucées.

    SOLUTION 1
    #!/bin/bash
    liste_rep=folder/*
    echo $liste_rep
     for rep in "$liste_rep"
     do
     cd "$rep"
     for fichier in *.tar.gz
     do
     #echo "VAR FICHIER :" $rep
     tar -zxvf $fichier
     done
     cd -
     done
    #tar -zxvf $fichier/*.tar.gz --directory $fichier/
    exit
    class Ruby
    end

    Resultat # decomprésse juste folder 001 à la racine
    [shellx] $ ./decomp4.sh
    folder/001 folder/002 folder/003 folder/004
    ./decomp4.sh: line 6: cd: folder/*: Aucun fichier ou dossier de ce type
    ./
    ./list_fic
    ./BATI
    ./DLOT
    ./FANR
    ./FPDL
    ./NBAT
    ./PARA
    ./PROP
    ./decomp4.sh: line 12: cd: « OLDPWD » non défini

    SOLUTION 2
    #!/bin/bash
    for fichier in folder/*/*.tar.gz
    do
     rep=$(dirname "$fichier")*
     cd "$rep"
     tar -zxvf $fichier
     cd -
    done
    #tar -zxvf $fichier/*.tar.gz --directory $fichier/
    exit
    class Ruby
    end

    Resultat -> Les fichiers ont tous été decompressées à la racine et ecrassées
    Le nom des fichiers tar.gz sont diferents mais les noms de fichiers contenu dans les tar.gz est identique.

    [shellx] $ ./decomp_sol2.sh
    ./decomp_sol2.sh: line 5: cd: folder/001*: Aucun fichier ou dossier de ce type
    ./
    ./list_fic
    ./6034_BATI_2014
    ./6035_NBAT_2014
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/001*: Aucun fichier ou dossier de ce type
    ./
    ./6035_NBAT_2014
    ./list_fic
    ./6034_BATI_2014
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/001*: Aucun fichier ou dossier de ce type
    ./
    ./list_fic
    ./BATI
    ./DLOT
    ./FANR
    ./FPDL
    ./NBAT
    ./PARA
    ./PROP
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/001*: Aucun fichier ou dossier de ce type
    ./
    ./NBAT
    ./PARA
    ./FPDL
    ./DLOT
    ./FANR
    ./PROP
    ./BATI
    ./list_fic
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/002*: Aucun fichier ou dossier de ce type
    ./
    ./6035_NBAT_2014
    ./list_fic
    ./6034_BATI_2014
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/002*: Aucun fichier ou dossier de ce type
    ./
    ./NBAT
    ./PARA
    ./FPDL
    ./DLOT
    ./FANR
    ./PROP
    ./BATI
    ./list_fic
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/003*: Aucun fichier ou dossier de ce type
    ./
    ./list_fic
    ./6034_BATI_2014
    ./6035_NBAT_2014
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/003*: Aucun fichier ou dossier de ce type
    ./
    ./6035_NBAT_2014
    ./list_fic
    ./6034_BATI_2014
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/003*: Aucun fichier ou dossier de ce type
    ./
    ./NBAT
    ./PARA
    ./FPDL
    ./DLOT
    ./FANR
    ./PROP
    ./BATI
    ./list_fic
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/004*: Aucun fichier ou dossier de ce type
    ./
    ./6035_NBAT_2014
    ./list_fic
    ./6034_BATI_2014
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini
    ./decomp_sol2.sh: line 5: cd: folder/004*: Aucun fichier ou dossier de ce type
    ./
    ./NBAT
    ./PARA
    ./FPDL
    ./DLOT
    ./FANR
    ./PROP
    ./BATI
    ./list_fic
    ./decomp_sol2.sh: line 7: cd: « OLDPWD » non défini

    SOLUTION 3

    #!/bin/bash
    liste_rep=folder/*
    echo $liste_rep
     for rep in "$liste_rep"
     do
     cd "$rep"
     echo *.tar.gz | xargs -n 1 tar -zxvf
     cd -
     done
    #tar -zxvf $fichier/*.tar.gz --directory $fichier/
    exit
    class Ruby
    end

    [shellx] $ ./decomp_sol3.sh
    folder/001 folder/002 folder/003 folder/004
    ./decomp_sol3.sh: line 6: cd: folder/*: Aucun fichier ou dossier de ce type
    ./
    ./list_fic
    ./BATI
    ./DLOT
    ./FANR
    ./FPDL
    ./NBAT
    ./PARA
    ./PROP

    SOLUTION 3 bis ## J'ai enlevé le guimets pour "$rep"
    #!/bin/bash
    liste_rep=folder/*
    echo $liste_rep
     for rep in "$liste_rep"
     do
     cd $rep ## J'ai enlevé le guimets 
     echo *.tar.gz | xargs -n 1 tar -zxvf
     cd -
     done
    exit
    class Ruby
    end

    Les fichiers sont bien decompréses uniquement dans le dossier 001 (bouvle pas sur 002 003 004 )

    folder/001 folder/002 folder/003 folder/004
    ./
    ./list_fic
    ./6034_BATI_2014
    ./6035_NBAT_2014
    ./
    ./6035_NBAT_2014
    ./list_fic
    ./6034_BATI_2014
    ./
    ./list_fic
    ./BATI
    ./DLOT
    ./FANR
    ./FPDL
    ./NBAT
    ./PARA
    ./PROP
    ./
    ./NBAT
    ./PARA
    ./FPDL
    ./DLOT
    ./FANR
    ./PROP
    ./BATI
    ./list_fic

    J'ai effectué pas mal de tests, et je suis arrivé au même résultat.