scp
概要
- SSH プロトコルを用いて、ファイルを転送する
使い方
$ scp [option] Source Destination
- Source: コピー元
- ローカルの場合はそのままファイルパスを指定
- サーバの場合は「ユーザ名@サーバ名:ファイルパス」
- Destination: コピー先 (指定方法は、Source と同じ)
- Option
- -r: 再帰的にファイルを転送 (ディレクトリのファイル転送をする際に使う)
- -c 暗号化方式: 暗号化方式の指定
- aes128-cbc
- 3des-cbc (デフォルト?)
- blowfish-cbc
- cast128cbc
- arcfour (暗号化強度が弱いが?、転送速度が良い)
- arcfour128 (暗号化強度が弱いが?、転送速度が良い)
- arcfour256 (暗号化強度が弱いが?、転送速度が良い)
- aes192-cbc
- aes256-cbc
- aes128-ctr
- aes192-ctr
- aes256-ctr
- -C: 圧縮して転送
Tips
サーバ側でスペースを含むファイルを転送できない
- サーバ側にあるファイル名にスペースを含むファイルを転送できない (no matches found と出る)
- エスケープシーケンス (\) でも回避できない。
- ファイルパスをクォーテーション、ダブルクォーテーションで囲む
$ scp ユーザ名@サーバ名:"ファイルパス" クライアント側のパス
ワイルドカードで指定したサーバ側のファイルを転送できない
- サーバ側のファイルを一括転送しようとワイルドカードを使ったら、No such file
- ワイルドカードをエスケープする
$ scp ユーザ名@サーバ名:パス/\* クライアント側のパス
Not a directory / Is a directory
- 転送しようとしても、「
scp <転送先のパス>: Not a directory
」や「scp <転送先のパス>: Is a directory
」と出て転送できない - 転送先のパスに既に同名のファイル、あるいはディレクトリがある場合に表示されるエラー
- ちなみに、エラーの内容は
Not a directory
は、転送先にファイルがある状態で、同じパスにディレクトリを転送する時に表示されるIs a directory
は、転送先にディレクトリがある状態で、同じパスにファイルを転送する時に表示される