引用符で囲まれていないワイルドカードがscpでリモートで機能するのはなぜですか?


24

私はこれをBashで入力しています:

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

そして、それは機能し、リモートサーバー上のワイルドカードを作るすべてのファイルを取得します。しかし、なぜこれが機能するのでしょうか?Bashは、引数がのようなツールで見えるようになる前に、引数のワイルドカード表現を展開すると考えましたscp

回答:


31

一致するファイル名がない場合、bashのワイルドカード式はそれ自体に展開されます。そのため、名前が一致するファイルをローカルで作成しない限りuser@remote:~/dir/*.xml、コマンドは引用符なしで機能します。


9
そして、また、有効にしないnullglob、それは空の文字列に展開されなければならない
エリックRenouf

1
nullglobパターンが空の文字列に展開することはありません。それは完全に消えます。scp "" .(2つの引数のうち1つは空の文字列)とscp .(1つの引数との無効な呼び出しscp)の違いです。
chepner
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.