首页 文章

通过SSH传输文件[关闭]

提问于
浏览
414

我正在命令行上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] 上传?

4 回答

  • 665

    你需要某处某事 . 你有 scp ./styles/ ,所以你说的是安全副本 ./styles/ ,而不是将其复制到的位置 .

    一般来说,如果你想下载,它将会:

    # download: remote -> local
    scp user@remote_host:remote_file local_file
    

    其中 local_file 实际上可能是放置文件的目录're copying in. To upload, it'是相反的:

    # upload: local -> remote
    scp local_file user@remote_host:remote_file
    

    如果要复制整个目录,则需要 -r . 将 scp 视为 cp ,除了您可以使用 user@remote_host:file 以及本地文件指定文件 .

    编辑:如注释中所述,如果本地和远程主机上的用户名相同,则在指定远程文件时可以省略用户 .

  • 143

    如果要复制到桌面计算机或从桌面计算机复制,请使用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
    
  • 22

    您需要指定源和目标,如果要复制目录,则应查看-r选项 .

    因此,从远程服务器递归复制/ home / user /以及当前目录:

    scp -pr user@remoteserver:whatever .
    
  • 15

    不,你仍然需要 scp [from] [to] 无论你复制哪种方式

    不同的是,你需要 scp -p server:serverpath localpath

相关问题