Відповіді:
Якщо немає відповідного імені файлу, виразний вираз у bash розширюється до себе. Отже, доки ви не створите жодного файлу локально, ім'я якого відповідає user@remote:~/dir/*.xml, ваша команда працює без цитування.
nullglobне викликає розширення шаблону до порожнього рядка; це змушує його зовсім зникнути. Це різниця між scp "" .(два аргументи, один з яких - порожній рядок) та scp .(один аргумент та недійсний виклик scp).
nullglobяке б воно розширило на порожній рядок