[Bash] Exécution d'un tar par script bash

Résolu
jerry52 Messages postés 2 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
Bonjour à tous,

En désespoir de cause, je me tourne vers la communauté pour tenter de résoudre mon problème :

Je veux faire exécuter un tar qui restaure des fichiers d'une archive au travers d'un script bash.

Pour cela, j'ai saisi dans un fichier texte ordinaire la liste des fichiers à restaurer. Je précise que les noms de fichiers comportent des blancs et des caractères accentués.

Dans mon script, je lance la commande suivante :

tar xvvfz test.tar.gz "nom du premier fichier avec des blancs et accentués" "nom du deuxième fichier avec blancs et accentués"

par le script, ça ne marche pas, les blancs sont pris comme séparateur par la commande tar.

Par contre, lorsque je tape la même commande au clavier, ça marche impeccable.

Quelqu'un a-t-il une idée ?

En vous remerciant, par avance, pour vos réponses ....
A voir également:

1 réponse

magicwill Messages postés 94 Statut Membre 3
 
Il faut que tu change la variable d'environnement IFS.
Celle-ci permet de déterminer qu'est ce qui sera considéré comme un separateur...par exemple l'espace...

si dans ton script, tu le modifie, n'oublie pas de le restaurer à la fin de ton script.

Regarde sur le net pour cette variable, tu y trouvera surement des exemples...
Pour moi, il y a cette piste...

Sinon: proteger ce que tu recupere par des ' par exemple et pas par des "...mais je suis pas sur que ca marche..

Voila...


Ps: ta commande tar comporte deux fois "v"... c pas tres normal je crois...
++
0
jerry52 Messages postés 2 Statut Membre
 
La solution était bien là, en effet ....

Seulement attention à la syntaxe. Pour modifier le contenu de la variable IFS, il faut absolument utiliser la syntaxe suivante :

IFS=$'&'

(si on choisit le & comme séparateur)

Par ailleurs, il faut virer le " en début et en fin des noms de fichiers. La commande qui marche devient alors :

tar xvvfz test.tar.gz premier fichier avec blancs et accentués&deuxième fichier avec blancs et accentués

Merci à toi magicwill ...

ps : le deuxième v de la commande tar sert à avoir un affichage du type "ls -l" en sortie de la commande
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Merci ;-))
0