479

コマンドラインでリモートサーバーにSSHで接続し、コマンドを使用してディレクトリをローカルマシンにコピーしようとしていますscp。ただし、リモートサーバーは次の「使用法」メッセージを返します。

[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]アップロードに機能すると思いましたか?

4

4 に答える 4

770

あなたは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ように考えてください。cpuser@remote_host:file

編集:コメントに記載されているように、ローカルホストとリモートホストのユーザー名が同じである場合、リモートファイルを指定するときにユーザーを省略できます。

于 2008-12-05T12:51:02.067 に答える
172

デスクトップマシンとの間でコピーする場合は、WinSCPを使用します。Linuxの場合、Nautilusは[サーバーに接続]オプションを介して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
于 2008-12-05T12:57:03.040 に答える
23

ソースと宛先の両方を指定する必要があり、ディレクトリをコピーする場合は -r オプションを確認する必要があります。

/home/user/whatever をリモートサーバーから現在のディレクトリに再帰的にコピーするには:

scp -pr user@remoteserver:whatever .
于 2008-12-05T13:25:00.487 に答える
20

scp [from] [to]いいえ、コピーする方法はどちらでもする必要があります

違いは、あなたがする必要があるということですscp -p server:serverpath localpath

于 2008-12-05T12:49:36.207 に答える