从Mac复制本地文件到终端中的ssh会话

16

我是新手,正在学习使用bash命令,遇到了一些问题。我正在通过ssh连接到一个包含我的工作文件的Linux服务器。我有一个本地文件在我的Mac上,需要将其复制到服务器上。

以下是我迄今为止所做的步骤: 1)ssh usrname@orgname.edu 2)输入密码 3)pwd 4)工作目录:home/usrname

此后我卡住了。我在我的Mac文档中有一个本地文件夹,我想将它复制到我通过ssh连接进入的服务器的工作目录中。

感谢您的帮助。谢谢


4
请使用 scp 替代。 - Jean-François Fabre
这不是一个编程问题。SuperUser.com 是寻求技术支持的更好的地方。 - Barmar
3个回答

53

当您通过SSH连接到远程机器时,就像您坐在另一台计算机前并在其中执行命令一样。在这种状态下,您无法将文件复制到(或从)该计算机中。相反,您必须使用不同的工具scp来完成此操作。它也属于ssh家族,并实际上在幕后调用了ssh。以下是如何将本地目录复制到远程计算机:

scp -rp /path/to/local/dir usrname@orgname.edu:/path/to/remote/dir

我使用了-r模式(代表递归),以递归方式复制目录。有关更多详细信息,请参见scp手册


如果我的虚拟机的地址是这样的 ubuntu@ip,会怎么样呢? - undefined

21
您需要使用 sftp 而不是 ssh。请尝试以下步骤:
  1. sftp usrname@orgname.edu
  2. 输入密码
  3. cd <要传输文件的目录>
  4. put <要传输的文件名>
您还可以在某些命令前加上 'l' 表示要在本地执行该操作。例如,ls 将显示远程服务器上的文件,lls 将显示本地机器上的文件。 编辑: 请确保您要么
a. 在开始 sftp 进程之前导航到包含要传输的文件的文件夹。
b. 在 sftp 会话中使用 lcdlls 导航到包含要传输的文件的本地文件夹。
正如评论中提到的那样,使用完整路径传输文件是无效的。

当我在本地机器上输入文件的完整路径进行传输时,我收到一条消息,说找不到该文件或目录。 - ixbo45
1
好的,我刚试了一下,似乎使用完整路径不起作用。你需要使用“lcd”和“lls”确保你在正确的文件夹中。我会修改我的答案来包括这个。谢谢ixbo45。 - Malcolm G

1

从Linux命令提示符中输入:scp -C -r username@remote.host:/path/to/remote/directory/ target/directory

将远程目录复制到目标目录。


2
scp pathToFileOnMBP username@linuxHost:pathToFileOnLinux - Punisher660

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接