私はコマンドラインでリモートサーバーにSSH接続していて、scp
コマンドを使ってローカルマシンにディレクトリをコピーしようとしています。しかし、リモートサーバーはこの "usage"メッセージを返します。
[Stewart:console/ebooks/discostat] jmm% scp -p ./styles/
usage: scp [-1246BCEpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]Host1:]file1 [...] [[user@]Host2:]file2
[Stewart:console/ebooks/discostat] jmm%
双方向でファイルを転送できるようにしたいです。私が読んだものから、私は上記のコマンドがダウンロードのために、そしてscp -p [localpath] [remotepath]
がアップロードのために働くであろうと思いましたか?
どこかにscp
何かをする必要があります。あなたはscp ./styles/
を持っているので、あなたはセキュアコピー./styles/
を言っています、しかしそれをどこにコピーするべきではありません。
一般的には、ダウンロードしたい場合は、それが行きます:
# download: remote -> local
scp user@remote_Host:remote_file local_file
local_file
は、実際にはコピーしているファイルを入れるディレクトリです。アップロードするには、逆になります。
# upload: local -> remote
scp local_file user@remote_Host:remote_file
ディレクトリ全体をコピーしたい場合は-r
が必要になります。 scp
はcp
と同じように考えてください。ただし、ローカルファイルだけでなくuser@remote_Host:file
でファイルを指定することができます。
編集:コメントで述べたように、ローカルホストとリモートホストのユーザー名が同じ場合は、リモートファイルを指定するときにユーザーを省略できます。
デスクトップマシンとの間でコピーする場合はWinSCPを使用します。Linuxの場合はNautilusはConnect To Serverオプションを介してSCPをサポートします。
scpはsshdを実行しているマシンにしかファイルをコピーできないため、scpを実行しているマシンからリモートマシンでクライアントソフトウェアを実行する必要があります。
コマンドラインでコピーする場合は、次のようにします。
# copy from local machine to remote machine
scp localfile user@Host:/path/to/whereyouwant/thefile
または
# copy from remote machine to local machine
scp user@Host:/path/to/remotefile localfile
移動元と移動先の両方を指定する必要があります。ディレクトリをコピーしたい場合は、-rオプションを調べてください。
そのため、リモートサーバーから現在のディレクトリに/ home/user/whateverを再帰的にコピーします。
scp -pr user@remoteserver:whatever .
いいえ、コピーする方法はどちらでもscp [from] [to]
する必要があります
違いは、scp -p server:serverpath localpath
が必要です