TL;DR
Secure Copy の略。SSH プロトコルを使って、リモートサーバとファイルやディレクトリを送受信するコマンドである。そのプロトコル(Secure Copy Protocol)を指すこともある。
仕組み
OpenSSH の scp は、SSH 接続の上で SFTP プロトコルを使ってデータを転送する。-O を付けると、従来の SCP プロトコルを使う。
例
リモートの場所は [user@]host:[path] の形で書く。-r はディレクトリを再帰的にコピーし、-P は接続先のポートを指定し、-p は元のファイルの更新時刻、アクセス時刻、モードを保つ。
scp -r ./dir [email protected]:/tmp/注意点
scp には脆弱性がある。そのため OpenSSH は、代わりに rsync や sftp コマンドを使うよう呼びかけている。ただ、scp は手軽なので、移行はなかなか進んでいない。
従来の SCP プロトコルは、リモートのユーザのシェルを実行するので、リモートのシェルで特別な意味を持つ文字を慎重にクォートする必要がある。
関連
- SSH
- rsync
- sftp