I'm typing this in Bash:
scp user@remote:~/dir/*.xml .
and it works, getting all the files that make the wildcard on the remote server. But why does this work? I thought that Bash expands wildcard expressions in arguments before the arguments become visible to a tool like