Я набираю это в Bash:
scp user@remote:~/dir/*.xml .
и это работает, получая все файлы, которые делают подстановочный знак на удаленном сервере. Но почему это работает? Я думал, что Bash расширяет подстановочные выражения в аргументах, прежде чем аргументы станут видимыми для подобного инструмента scp
.
nullglob
чтобы это расширилось до пустой строкиnullglob
не вызывает расширения шаблона до пустой строки; это заставляет его исчезнуть совсем. Это разница междуscp "" .
(два аргумента, один из которых является пустой строкой) иscp .
(один аргумент и недопустимый вызовscp
).