我正在尝试将文件从本地 Mac 复制到在 Amazon EC2/AWS Cloud 上运行的 Linux 实例。
我能够通过终端连接到服务器,但无法将我的文件上传到服务器。
这是我尝试过的:(是的,我替换了[电子邮件保护]实际的服务器信息)
scp /用户/我/桌面/文件.txt[电子邮件保护]:文件.txt
结果:Sink:scp:/Users/me/Desktop/file.txt:没有此文件或目录
scp ~/用户/me/桌面/file.txt[电子邮件保护]:文件.txt
结果:scp:/home/myuser/Users/me/Desktop/file.txt:没有此文件或目录
因此,当我使用 ~/Users/ ... 时,它似乎认为我正在尝试从服务器复制文件?但是当我仅使用 /Users/ ... 时,它仍然说找不到该文件。
任何帮助将不胜感激。
更多信息 ...
以下是我进行的一些额外尝试,均得到相同的结果:
scp 本地主机:/Users/me/Desktop/file.txt[电子邮件保护]:/home/myuser/file.txt
scp /用户/我/桌面/文件.txt[电子邮件保护]:/home/myuser/file.txt
我还需要做些什么来告诉它从我的台式机上获取文件吗?
弄清楚了 ...
好的,我尝试在已连接到服务器时执行此操作。现在对我来说这很有意义,但我正在连接到服务器,然后尝试移动文件。
感谢您的所有帮助并对所造成的混乱表示抱歉!
答案1
答案2
看起来远程服务器上的默认目录是 /Users/me/Desktop,您应该在远程服务器上创建该目录,如下所示:
mkdir /Users/me/Desktop
或者将 file.txt 放到现有路径。
ssh /path/to/file.txt [email protected]:/path/to/target/file.ext
答案3
我认为你给命令提供的路径有缺陷......
大多数绝对路径以斜线开头"/"
,表示根目录。它也适用于远程系统。看看这个:
scp /path/to/read/file.txt [email protected]:/file.txt
或者
scp /path/to/read/file.txt [email protected]:/path/to/write/file.txt
另外,在您的条件下,如果出现错误,您必须检查路径。您可以在文件夹中键入下面的命令来检查路径file.txt
。
pwd
... 无论如何,如果你认为你的文件在正确的位置,你可以将目录更改为它所在的位置并检查pwd
结果
如果您可以通过以下命令更改路径:
cd /Users/me/Desktop/
并且您可以列出要发送的文件:
ls -la | grep file.txt
-rw-r--r-- 1 me me 14320 2011-11-15 09:50 file.txt
可能存在用户权限问题。检查您是否可以通过以下方式显示文件内部:cat file.txt
如果您没有该文件的读取权限,则无法将文件发送到任何地方。首先,您必须授予该文件的一些权限。