![使用 cp file user@remove 语法通过 ssh 复制文件时出现“cp:无法访问‘user@remote/home/file’:不是目录”](https://linux22.com/image/1139230/%E4%BD%BF%E7%94%A8%20cp%20file%20user%40remove%20%E8%AF%AD%E6%B3%95%E9%80%9A%E8%BF%87%20ssh%20%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%E6%97%B6%E5%87%BA%E7%8E%B0%E2%80%9Ccp%EF%BC%9A%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E2%80%98user%40remote%2Fhome%2Ffile%E2%80%99%EF%BC%9A%E4%B8%8D%E6%98%AF%E7%9B%AE%E5%BD%95%E2%80%9D.png)
我正在尝试将文件从我的计算机复制到大学服务器上的个人空间。在我的计算机上,该文件位于/home/karnivaurus/file.pdf
。
如果我使用 连接到服务器,然后运行,它会打印。如果我运行,它只会显示一个目录。然后我想要做的是将此文件复制到目录。ssh [email protected]
pwd
/homes/karnivaurus
ls
foo
/homes/karnivaurus/foo
因此,退出 ssh 后,我进入本地主目录/home/karnivaurus
。然后我运行命令,但这会返回错误消息。我也尝试过运行,但这会给我相同的错误消息。cp paper.pdf [email protected]/foo/paper.pdf
cp: failed to access ‘[email protected]/homes/karnivaurus/paper.pdf’: Not a directory
cp 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
,将输入文件发送到 的 STDINssh
,然后转发给远程命令并cat >/where/to/put/paper.pdf
在远程主机上运行该命令。操作后,文件将作为 可用/where/to/put/paper.pdf
,server.uni.ac.uk
请更改路径以满足您的需要。