使用 cp file user@remove 语法通过 ssh 复制文件时出现“cp:无法访问‘user@remote/home/file’:不是目录”

使用 cp file user@remove 语法通过 ssh 复制文件时出现“cp:无法访问‘user@remote/home/file’:不是目录”

我正在尝试将文件从我的计算机复制到大学服务器上的个人空间。在我的计算机上,该文件位于/home/karnivaurus/file.pdf

如果我使用 连接到服务器,然后运行​​,它会打印。如果我运行,它只会显示一个目录。然后我想要做的是将此文件复制到目录。ssh [email protected]pwd/homes/karnivauruslsfoo/homes/karnivaurus/foo

因此,退出 ssh 后,我进入本地主目录/home/karnivaurus。然后我运行命令,但这会返回错误消息。我也尝试过运行,但这会给我相同的错误消息。cp paper.pdf [email protected]/foo/paper.pdfcp: failed to access ‘[email protected]/homes/karnivaurus/paper.pdf’: Not a directorycp paper.pdf [email protected]/homes/karnivaurus/foo/paper.pdf

我究竟做错了什么?

答案1

使用scp

DESCRIPTION
     scp copies files between hosts on a network.  It uses ssh(1) for data
     transfer, and uses the same authentication and provides the same security
     as ssh(1).

基本语法与cp

scp paper.pdf [email protected]:/homes/karnivaurus/foo/

或者

scp paper.pdf [email protected]:~/foo/

答案2

当您有访问权限时,传输文件的一些其他方法ssh

  • rsync

    rsync -av paper.pdf [email protected]:/where/to/put/
    

    替换/where/to/put/为您想要的目录名,如果您想在中间目录存在的情况下重命名远程主机上的文件,它也可以是文件名。

    rsync有一个很大的优势,scp它使用增量传输算法,所以如果由于某种原因传输在中途停止,您可以使用从该位置再次恢复传输rsync

  • 直接的ssh

    ssh [email protected] 'cat >/where/to/put/paper.pdf' <paper.pdf
    

    这里直接使用 传输文件ssh,将输入文件发送到 的 STDIN ssh,然后转发给远程命令并cat >/where/to/put/paper.pdf在远程主机上运行该命令。操作后,文件将作为 可用/where/to/put/paper.pdfserver.uni.ac.uk请更改路径以满足您的需要。

相关内容