Чому без котирування підказка працює віддалено за допомогою scp?


24

Я набираю це в Bash:

scp user@remote:~/dir/*.xml .

і це працює, отримуючи всі файли, які створюють підстановку на віддаленому сервері. Але чому це працює? Я думав, що Bash розширює виразні вирази в аргументах до того, як аргументи стануть видимими для такого інструменту scp.

Відповіді:


31

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


9
А також не вмикайте, nullglobяке б воно розширило на порожній рядок
Eric Renouf

1
nullglobне викликає розширення шаблону до порожнього рядка; це змушує його зовсім зникнути. Це різниця між scp "" .(два аргументи, один з яких - порожній рядок) та scp .(один аргумент та недійсний виклик scp).
чепнер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.