Perché un jolly non quotato funziona in remoto con scp?


24

Sto scrivendo questo in Bash:

scp user@remote:~/dir/*.xml .

e funziona, ottenendo tutti i file che compongono il carattere jolly sul server remoto. Ma perché funziona? Ho pensato che Bash espande le espressioni jolly negli argomenti prima che gli argomenti diventino visibili a uno strumento come scp.

Risposte:


31

Se non esiste un nome file corrispondente, allora un'espressione jolly in bash si espande su se stessa. Pertanto, purché non si crei localmente alcun file il cui nome corrisponda user@remote:~/dir/*.xml, il comando funziona senza virgolette.


9
E inoltre non abilitare nullglobquale vorrebbe che si espandesse in stringa vuota
Eric Renouf,

1
nullglobnon causa l'espansione del modello nella stringa vuota; lo fa scomparire del tutto. È la differenza tra scp "" .(due argomenti, uno dei quali è la stringa vuota) e scp .(un singolo argomento e una chiamata non valida a scp).
Chepner,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.