3

(bashで)実行すると:

scp remote.machine:/var/log/sy* .

リモートマシンの /var/log/sy* に一致するすべてのファイルを取得します。

syslog                                     100%   91KB  10.1KB/s   00:09    
syslog.1                                   100%  753KB  62.7KB/s   00:12    
syslog.2.gz                                100%   55KB   7.9KB/s   00:07    
syslog.3.gz                                100%   50KB   8.3KB/s   00:06   

これはどのように機能しますか?

コマンドが実行される前に、グロブパターンがシェルによって展開されたという印象を受けました。

私の理解は間違っていますか?

4

2 に答える 2

5

あなたの理解は正しいです。しかし:

そのようなファイルがないため、ローカル シェルを展開できませremote.machine:/var/log/sy*ん (おそらく、ファイルを含むremote.machine:サブ ディレクトリ ツリーを持つ現在のフォルダー内のディレクトリは非常にまれです。var/log/sy*

したがって、シェルは文字列をscpunexpanded に渡し、それをリモート システムに渡し、解析して使用します。

于 2013-03-28T09:56:38.270 に答える
3

一致するものが見つからない場合、シェルはアスタリスクを保持します。ファイルremote.machine:/var/log/syがないため展開するものがないため、アスタリスクはそのまま残り、リモート マシンに渡されます。

于 2013-03-28T09:59:41.767 に答える