• # 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 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Ãat 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Ãat 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