Piszę to w Bash:
scp user@remote:~/dir/*.xml .
i działa, pobierając wszystkie pliki, które tworzą symbol wieloznaczny na zdalnym serwerze. Ale dlaczego to działa? Myślałem, że Bash rozwija wyrażenia wieloznaczne w argumentach, zanim argumenty staną się widoczne dla narzędzia takiego jak scp
.
nullglob
która sprawiłaby, że rozwinąłaby się ona do pustego łańcuchanullglob
nie powoduje rozwinięcia wzorca do pustego łańcucha; powoduje to, że całkowicie znika. Jest to różnica międzyscp "" .
(dwoma argumentami, z których jeden jest pustym ciągiem) ascp .
(jednym argumentem i niepoprawnym wywołaniemscp
).