Forum Linux.debian/ubuntu tar : <chemin ver le fichier/file.tar.gz> : non trouvé dans l'archive

Posté par  . Licence CC By‑SA.
Étiquettes :
0
10
juil.
2018

Salut,

J'essaye de decompresser plusiers fichiers tar.gz contenus dans plusieurs dossiers via a script shell avec une fonction "loop".

l'arborescence c'est sembalable a ceci :

/folder/001
/folder/002
/folder/003

A l'intérieur de chaque dossier (001,002,003) j'ai 1, parfois plusieurs fichiers tar.gz.

Mon script c'est ceci :

!/bin/bash

liste_fichier="/folder/"
for fichier in $liste_fichier do
tar -xzvf $fichier/
.tar.gz --directory $fichier/
done
exit

Problème:
Le script fonctionne uniquement quand il existe un seul fichier tar.gz dans le dossier.
Si plus d'un fichier tar.gz je reçois le message "tar : : non trouvé dans l'archive"

Autre tests effectués:

  • J'ai testé le code suivant à l'intérieur d'un seul dossier contenant plusieurs tar.gz files: for i in *.tar.gz do tar -xzvf $i done Et ça marche.
  • j'ai essayé de exécuter le code ci-dessus à l'intérieur d'un autre loop sans sucées.

toutes les idées son les bienvenues.

  • # 2 boucles

    Posté par  . Évalué à 2.

    Salut,
    Dans ta ligne :

    tar -xzvf $fichier/.tar.gz --directory $fichier/

    Il manque le * devant le .tar.gz

    Sinon, je ferai plutôt en deux boucles avec une variable repertoire. Ta variable fichier est en fait une liste de répertoire, et ce n’est pas clair quand on lit.

    #!/bin/bash
    
    liste_repertoires="/folder/"
    for repertoire in "$liste_repertoires" do
      for fichier in "$repertoire"/*.tar.gz
      do
        tar xzf "$fichier"
      done
    done
  • # Boucle correcte - destination erroné

    Posté par  . Évalué à 1. Dernière modification le 11 juillet 2018 à 15:42.

    Merci Anthony,

    Cela a réglé un problème et soulevé un autre.

    Voici tout l'historique:

    Arborescence

    [shellx] $ ls -l folder
    total 16
    drwxr-xr-x 2 shellx mrv 4096 11 juil. 14:36 001
    drwxr-xr-x 2 shellx mrv 4096 11 juil. 14:37 002
    drwxr-xr-x 2 shellx mrv 4096 11 juil. 14:37 003
    drwxr-xr-x 2 shellx mrv 4096 11 juil. 14:34 004

    Contenu des dossiers

    [shellx] $ ls folder/*
    folder/001:
    CARDV022A0.tar.gz CARDV02976.tar.gz CARDV02A0.tar.gz CARDV976.tar.gz

    folder/002:
    CARDV02976.tar.gz CARDV976.tar.gz

    folder/003:
    CARDV022A0.tar.gz CARDV02976.tar.gz CARDV976.tar.gz

    folder/004:
    CARDV02976.tar.gz CARDV976.tar.gz

    Script suivant ta suggestion

    !/bin/bash

    liste_rep="/folder/"
    echo "LISTE REP :" $liste_rep
    for rep in "$liste_rep"
    do
    for fichier in $liste_rep/
    .tar.gz
    do
    liste_rep="/folder/*"
    echo "FICHIER :" $fichier
    tar -zxvf "$fichier"
    done
    done
    exit

    Problème

    Les fichiers sont tous décompressées dans le dossier de exécution du shell script et non pas à l'intérieur des chaque dossier. Or les tar.gz contiennent de fichier avec des noms identiques, et ils sont tous écrasés.

    j'ai essayé avec les option ci-dessous
    En rajoutant les paramètres suivants dans la ligne respective :
    tar -zxvf "$fichier" -C $liste_rep

    Le erreur suivant est affiché à l’écran pendant l'execution du script:
    LISTE REP : /folder/001 /folder/002 /folder/003 /folder/004
    FICHIER : /folder/001/CARDV022A0.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/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
    .
    .
    .
    FICHIER : /folder/004/CARDV02A0.tar.gz

    En faite la variable "$liste_rep" n'est pas très bien en compte à l'intérieur de la deuxième boucle.

    Des idées?
    Merci d'avance

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

      Posté par  . Évalué à 2.

      Tu peux changer de répertoire pour te mettre dans le répertoire du fichier.

      Tu peux utiliser dirname, ou un cd avant et après la boucle imbriquée.

      Pour un meilleur apprentissage, je te laisse me répondre avec la bonne solution. Si tu n’y arrive toujours pas, j’essayerai de te guider plus précisément.

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

        Posté par  . É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

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

          Posté par  . Évalué à 2.

          Je mets des commentaires #-

          #!/bin/bash
          liste_rep="folder/*"
          #- La variable liste_rep vaut : 'folder/*' et ne contient donc qu’un élément.
          #- Il faut enlever les guillemets pour laisser bash étendre.
          
          #- La variable « folder » n’est pas utilisé.
          # folder="$(ls folder)"
          #- Le liste_rep est en dehors des guillemets, donc bash évalue folder/* 
          #- et l’étend avant de passer les paramètres à echo…
          echo "LISTE REP :" $liste_rep
                  for rep in "$liste_rep"
                  do
          #- rep vaut la seule valeur de liste_rep.
                          echo "AFFICHE REP :"$rep
                          #for fichier in "$(ls /folder/*)" # test
          #- Bash étend les répertoires et les fichiers. Donc fichier vaudra :
          #-    * 001/1.tar.gz
          #-    * 001/2.tar.gz
          #-    * 002/1.tar.gz
          #-    * …
                          for fichier in $liste_rep/*.tar.gz
                          do
          #- Tu peux utilisé cd avec dirname… cd $(dirname …)
                                  #cd $liste_rep
                                  echo "FICHIER :" $fichier
                                  tar -zxvf $fichier  #-  --directory $liste_rep/
          #- Ajouter un cd pour retourner dans le répertoire précédent.
                          done
                  done
          exit
          
          end

          Aller, je reviens après mangé.

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

            Posté par  . Évalué à 1. Dernière modification le 12 juillet 2018 à 13:07.

            J'ai effectué les modifications sugérres, mais j'ai réussi uniquement a decompresser tous les tar.gz au même endroit pour l'instant.

            #!/bin/bash
            liste_rep=folder/*
            #- La variable liste_rep vaut : 'folder/*' et ne contient donc qu’un élément. 
            #- Il faut enlever les guillemets pour laisser bash étendre.
            
            #- La variable « folder » n’est pas utilisé.
            # folder="$(ls folder)"
            #- Le liste_rep est en dehors des guillemets, donc bash évalue folder/* 
            #- et l’étend avant de passer les paramètres à echo…
            echo "LISTE REP :" $liste_rep
                    for rep in "$liste_rep"
                    do
            #- rep vaut la seule valeur de liste_rep.
                            echo "AFFICHE REP :"$rep
                            #for fichier in "$(ls /folder/*)" # test
            #- Bash étend les répertoires et les fichiers. Donc fichier vaudra :
            #-    * 001/1.tar.gz
            #-    * 001/2.tar.gz
            #-    * 002/1.tar.gz
            #-    * …
                            for fichier in $liste_rep/*.tar.gz
                            do
            #- Tu peux utilisé cd avec dirname… cd $(dirname …)
                                    cd $(liste_rep)
                                    echo "FICHIER :" $fichier
                                    tar -zxvf $fichier  #-  --directory $liste_rep/
            #- Ajouter un cd pour retourner dans le répertoire précédent.
                                    cd /
                            done
                    done
            exit
            
            end
            class Ruby
            end

            Et merci pour les commentaires et les explications.

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

              Posté par  . Évalué à 2.

              Je reprends et termine.

              #!/bin/bash
              liste_rep=folder/*
              
              echo "LISTE REP :" $liste_rep
                      for rep in "$liste_rep"
                      do
                              echo "AFFICHE REP :"$rep
                              for fichier in $liste_rep/*.tar.gz
                              do
              #- Tu peux utilisé cd avec dirname… cd $(dirname …)
              #- Non, soit tu fais : cd "$rep" les guillements c’est pour être robuste aux espaces.
              #ERROR                        cd $(liste_rep)
                                      cd "$rep"
                                      echo "FICHIER :" $fichier
                                      tar -zxvf $fichier
              #- Ajouter un cd pour retourner dans le répertoire précédent.
              #- il faut lancer cd - ça revient au répertoire où tu étais précédemment.
              #ERROR                        cd /
                                      cd -
                              done
                      done
              exit

              Néanmoins on peut faire plus simple : (avec 2 boucles)

              #!/bin/bash
              liste_rep=folder/*
              
              for rep in "$liste_rep"
              do
                  cd "$rep"
                  for fichier in *.tar.gz
                  do
                      tar -zxvf $fichier
                  done
                  cd -
              done
              
              exit

              Autre solution avec une seule boucle. On profite que bash sait étendre plusieurs *

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

              L’avantage de la deuxième solutions c’est que c’est plus court. L’inconvénient c’est que tu as beaucoup plus de changement de répertoire.

              Le cd - affiche le répertoire de destination, si ça pollue ton affichage, il faut rediriger la sortie vers /dev/null.

              Sinon, je n’ai pas vérifié, il est probable qu’il y ait des erreurs de syntaxes.

              Une dernière pour la route, on reprend la première solution et on vire la boucle. N’hésite pas a faire man des commandes utilisées.

              #!/bin/bash
              liste_rep=folder/*
              
              for rep in "$liste_rep"
              do
                  cd "$rep"
                  echo *.tar.gz | xargs -n 1 tar -zxvf 
                  cd -
              done
              
              exit
              • [^] # Re: Boucle correcte - destination erroné

                Posté par  . É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.

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

                  Posté par  . Évalué à 2.

                  #!/bin/bash
                  #- Ici bash n’imterprete pas le '*' donc il stocke 'folder/*'
                  liste_rep=folder/*
                  #- Sur le echo, met les guillemets pour vois ce qu’il y a vraiment dans la variable.
                  echo "$liste_rep"
                  #- Pour voir la diff.
                  echo $liste_rep
                  #- On supprime les guillemets du coup. Ne marchera pas avec des espaces dans les noms.
                          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

                  Si je comprends, par exemple : dans le répertoire 001 tu as deux fichiers : toto.tar.gz et tata.tar.gz contenant bin/mon_logiciel tous les deux.
                  Tu voudrais avoir : 001/toto/bin/mon_logiciel et 001/tata/bin/mon_logiciel.

                  Pour ça, tu ajoutes ça avant le tar :

                  mkdir $(basename $fichier .tar.gz)
                  cd  $(basename $fichier .tar.gz)
                  tar xzf ../$fichier
                  cd ..  #Retourne où sont les tgz.

                  Par contre le cd - ne pourra pas retourner vers le répertoire voulu… Regarde du côté de pushd et popd.

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

                    Posté par  . Évalué à 1. Dernière modification le 12 juillet 2018 à 16:00.

                    Non,
                    Les tar.gz contienne des fichiers text

                    [shellx] $ ls folder/*
                    folder/001:
                    CARDV022A0.tar.gz --> Contient fichier "cardv22"
                    CARDV02976.tar.gz—> contiernt fichier "cardv29"
                    CARDV02A0.tar.gz --> contient fichier "cardv2"
                    CARDV976.tar.gz --> contient fichier "cardv9"

                    folder/002:
                    CARDV02976.tar.gz --> contient fichier "cardv29" mais le contenu de cardv29 de ce folder/002 d est different ddu fichier "cardv29" /folder/001
                    CARDV976.tar.gz --> Pareil pour le cardv29 - le noms de tar sont identiques, les nom de fichiers extraint aussi, mais les contenu des fichiers extraits sont difrentes pour chauqe folder 001 002 003 004

                    folder/003:
                    CARDV022A0.tar.gz
                    CARDV02976.tar.gz
                    CARDV976.tar.gz

                    folder/004:
                    CARDV02976.tar.gz CARDV976.tar.gz

                    j'ai fait echo avec la variable avec et sans guilemets.
                    C'est noté. Merci

  • # Cet Interface ne affiche pas les etoiles "*"

    Posté par  . Évalué à 1. Dernière modification le 11 juillet 2018 à 15:49.

    ===========Attention

    Cet interface n'affiche pas les étoiles "" dans
    liste_rep="/folder/
    "
    et
    "*.tar.gz"

    • [^] # Re: Cet Interface ne affiche pas les etoiles "*"

      Posté par  . Évalué à 2.

      Il faut mettre 3 « anti-cote » <altgr>+<7> Tu vois avec ruby tout en bas de la page de réponse.
      En remplaçant ruby par bash ça fait joli.

      Sous les commentaires tu as un lien « répondre » qui permet de hiérarchiser les réponses. C’est plus agréable que de toujours commencer un nouveau commentaire.

  • # Eureka ....

    Posté par  . Évalué à 1. Dernière modification le 12 juillet 2018 à 18:33.

    Enfin, la lumière

    En faite toute le probléme survenait de l'utilisation de "" guilemets

    J'ai testé le code ci-dessous avec sucées:

    #!/bin/bash
    liste_rep=folder/*
    echo "LISTE REP :" $liste_rep
            for rep in $liste_rep 
    ### $liste_rep Sans guilemets 
            do
                    echo "AFFICHE REP :"$rep
                    for fichier in $rep/*.tar.gz 
    ### $rep et non $liste_rep > liste_rep n'est pas dans la boucle 
    ### $rep affiche folder/001 ... 003
                    do
                            echo "FICHIER :" $fichier
    ### $fichier affiche le chemin complet avec les fichier tar.gz de chaque sub-repertoire
                            tar -zxvf $fichier --directory $rep/
    ### -- directory decompresser dans $rep = folder/001 et / donc folder/001/...003/
                    done
            done
    exit
    class Ruby
    end

    Merci de ton aide.

    • [^] # Re: Eureka ....

      Posté par  . Évalué à 2.

      Super, content d’avoir pu aider. Par contre, je me pose une question pourquoi tu as ça à la fin de ton fichier ?

      class Ruby
      end

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.