#!/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_repdocd"$rep"for fichier in *.tar.gz
do#echo "VAR FICHIER :" $rep
tar -zxvf $fichierdonecd -
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 ../$fichiercd .. #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 Anthony Jaguenaud . En réponse au message tar : <chemin ver le fichier/file.tar.gz> : non trouvé dans l'archive. Évalué à 2.
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 :
Par contre le
cd -ne pourra pas retourner vers le répertoire voulu... Regarde du côté depushdetpopd.