回答編集履歴
2
rsyncについて追記
answer
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
opensshのソースを見る限り、両方ともローカルパスと判断した場合に限りsshコマンド発行せずにcpコマンドを発行しているようなので、現時点でscp単体では厳しそうです。
|
|
2
2
|
https://github.com/openssh/openssh-portable/blob/V_7_4_P1/scp.c
|
|
3
3
|
|
|
4
|
-
ローカルパスを判断している基準は、
|
|
4
|
+
ローカルパスを判断している基準は、ファイルパス部分をcolon()にかけて、見つからなければローカルと判定するというもののようです。
|
|
5
|
+
具体的には"/"以前に":"があるかどうかで判断しているようです。("[]"で囲っている範囲は無視している等、もう少し細かいルールがあるようですが。)
|
|
5
|
-
https://github.com/openssh/openssh-portable/blob/V_7_4_P1/misc.c#L432
|
|
6
|
+
https://github.com/openssh/openssh-portable/blob/V_7_4_P1/misc.c#L432
|
|
7
|
+
|
|
8
|
+
似たような挙動をするものとしてrsyncがありますが、こちらもmanページを見る限り似たような動作のようですね。(すみません、ソースはscpより複雑なので追ってないです。)
|
|
9
|
+
https://download.samba.org/pub/rsync/rsync.html
|
1
ローカルパス判断基準について追記
answer
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
opensshのソースを見る限り、両方ともローカルパスと判断した場合に限りsshコマンド発行せずにcpコマンドを発行しているようなので、現時点でscp単体では厳しそうです。
|
|
2
|
-
https://github.com/openssh/openssh-portable/blob/V_7_4_P1/scp.c
|
|
2
|
+
https://github.com/openssh/openssh-portable/blob/V_7_4_P1/scp.c
|
|
3
|
+
|
|
4
|
+
ローカルパスを判断している基準は、"/"以前に":"があるかどうかで判断しているようです。
|
|
5
|
+
https://github.com/openssh/openssh-portable/blob/V_7_4_P1/misc.c#L432
|