[Linuxtrent] Re: rsync problema

  • From: Antonio Galea <antonio.galea@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Tue, 30 Nov 2010 23:33:39 +0100

2010/11/30 Aimar Marco <marco.aimar@xxxxxxxxx>:
>> >
>> > cmd="/usr/bin/rsync -avz  --delete root@IP_REMOTO:/dati/* /dati/"
>> >  $cmd
>
> mm..... per quale motivo dovrebbe fare un'espansione locale? L'asterisco è
> dentro una stringa....

Sicuro? Quando dichiari cmd è dentro una stringa, ma poi lo esegui
in una shell. Questa è sulla macchina di partenza, non su IP_REMOTO,
quindi l'espansione viene fatta in locale.

Bash mica può sapere che proprio per quel comando lì non volevi
l'espansione, no? Quindi prende la stringa da eseguire con il tuo
comando, sostituisce tutti i metacaratteri e le variabili che ci sono
dentro (escluso ciò che è protetto da quotes singole e backspace),
e _poi_ esegue il comando risultante.

Se vuoi espandere all'arrivo, ti occorre usare

    root@IP_REMOTO:"/dati/*"

solo che così hai un numero sempre più grande di virgolette
che girano. Ma visto che i files li prendi tutti, secondo me ti
conviene usare semplicemente

     root@IP_REMOTO:/dati/

> (preciso però che comunque non è l'asterisco che mi manda il comando in
> errore...)

Sì, lo credo - l'asterisco messo così ti darà errore più avanti, quando
ti aspetterai di avere dei files e non li trovi...

Antonio
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: