Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/05/2007, à 22:04

Goltia

[résolu]mv recalcitrant avec les variables contenant des mots avec...

Salut à tous.
Je m'explique :
si je fais

i=toto\ tata ; mv $i titi

Le gentil terminal me dit :

mv: la cible `titi' n'est pas un répertoire

Dernière modification par Goltia (Le 07/05/2007, à 23:51)

Hors ligne

#2 Le 07/05/2007, à 22:58

Saito

Re : [résolu]mv recalcitrant avec les variables contenant des mots avec...

Bonsoir,

C'est normal que ta commande ne marche pas: si tu donne plus de 2 arguments à mv, il considère qu'il doit déplacer les n-1 premiers fichiers arguments dans le n-ième argument répertoire, or ici il ne doit pas y avoir de répertoire titi dans ton répertoire courant. Concrètement, que veux-tu faire avec mv? Ce sera plus simple de te guider ainsi big_smile


Aku-Soku-Zan_Shinsengumi

Hors ligne

#3 Le 07/05/2007, à 23:02

Goltia

Re : [résolu]mv recalcitrant avec les variables contenant des mots avec...

En gros j'ai une liste de fichier avec un numéro.
Je veux faire un script pour renommer ces fichiers.

et les noms des fichiers comportent des espaces... donc sont de la forme que j'ai donné "toto\ titi"

Dernière modification par Goltia (Le 07/05/2007, à 23:02)

Hors ligne

#4 Le 07/05/2007, à 23:13

Saito

Re : [résolu]mv recalcitrant avec les variables contenant des mots avec...

Ah d'accord, donc il faut que tu entoures les noms des fichiers de "" :

i="titi toto"
# on teste le résultat
echo $i

Ainsi, mv "$i" tata renommera le fichier dénommé "titi toto" en tata

Dernière modification par Saito (Le 07/05/2007, à 23:45)


Aku-Soku-Zan_Shinsengumi

Hors ligne

#5 Le 07/05/2007, à 23:16

Goltia

Re : [résolu]mv recalcitrant avec les variables contenant des mots avec...

mouais mais le problème c'est que pour avoir mes noms de fichiers je fais un :

for i in *
   ....

Hors ligne

#6 Le 07/05/2007, à 23:45

Saito

Re : [résolu]mv recalcitrant avec les variables contenant des mots avec...

Goltia
et surtout c'est mv "$i" tata, car lorsque le shell va développer l'expression, de ta manière ou de la mienne, cela donnera mv titi toto tata => marche pas
C'est de là que venait ton problème, il faut quoter les variables pour éviter les problèmes d'espace et autres symboles réservés. Ainsi mv "$i" tata donnera mv "titi toto" tata et là c'est bon big_smile

J'ai répondu à côté dans le post précédent smile

Dernière modification par Saito (Le 07/05/2007, à 23:47)


Aku-Soku-Zan_Shinsengumi

Hors ligne

#7 Le 07/05/2007, à 23:50

Goltia

Re : [résolu]mv recalcitrant avec les variables contenant des mots avec...

ok merci Saito ca marche.

Bonne nuit.

@+

Hors ligne