Since "Posting by non-members to openssh-unix-dev@mindrot.org is currently disabled." I post the question here. When run "scp .\tmp* sharefs:~" on Linux ubuntu 4.13.0-21-generic, the wildcard * is expanded, but look into source code scp.c, the expanding is not happening in scp.c. Where is the wildcard expanded? Look into the sftp.c code, it calls glob to expands the wildcard. Why scp can achieve the expanding without calling glob? Thanks!
It's done by your shell. Replace the scp with "echo" and you will see the same result.