6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

scpは注文の多いコマンド?

Posted at

scp (secure copy) コマンドの注意事項

scpは、リモートホストで起動したセキュアシェルへコマンドラインを渡して実行されるため、要注意。「ケツスラ」問題も面倒ですが。

リモートのパスにスペースが含まれるとき、"scp: ambiguous target"エラー

通常のコマンドでは、パスにスペースが含まれるとき、「\」(バックスラッシュ)でエスケープするか、全体を「'」(シングルクオーテーション)か「"」(ダブルクオーテーション)でくくります。

ls test\ location
ls 'test location'
ls "test location"

scpの場合、パスが、まずローカル側で評価されて転送、さらにリモート側で評価されてコマンド実行されるので、2重にエスケープしてあげる必要があります。色々やってみたけど、'"remote path"'が素直で良いかな。。

# test.sbをremote_hostへ転送

scp test.sb pi@remote_host.local:"/home/pi/Scratch\\ Projects/"
scp test.sb pi@remote_host.local:/home/pi/Scratch\\\ Projects/
scp test.sb pi@remote_host.local:'"/home/pi/Scratch Projects/"'
scp test.sb pi@remote_host.local:"'/home/pi/Scratch Projects/'"

ローカル側のファイルパスは2重にエスケープしなくて良い

scp 'test file.sb' pi@remote_host.local:"'/home/pi/Scratch Projects/'"
6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?