我将一系列软件文件下载到~/Downloads
我个人计算机上的子目录中。我还使用 bash 远程连接到使用ssh
.
是否可以将此文件传输ssh
到远程计算机?
答案1
您可能想用于scp
此目的。它是使用 SSH 协议传输文件的安全方法。
例如,要将名为yourfile.txt
from 的文件复制~/Downloads
到远程计算机,请使用:
scp ~/Downloads/yourfile.txt [email protected]:/some/remote/directory
你可以看更多例子这里。
答案2
虽然scp
这显然是正确的工具,但如果由于某种原因您无法使用它,您可以从本地计算机执行类似以下操作,将目录结构复制到远程计算机:
tar -c . | ssh <remote> tar -x
这将是tar
本地计算机上的当前目录,并将该目录写入该目录,tar
然后stdout
将其传送到一个ssh
命令,在该命令中它将执行远程命令以解压缩从中读取的文件stdin
编辑以反映 Dietrich Epp 关于-f -
在创建和提取端均默认的评论,因此无需明确指定。
答案3
如果您想在更多的情况下执行此操作,sshfs
如果您使用的是支持 FUSE 的类 Unix(Linux、*BSD、Mac OS X),我建议您安装远程文件系统。在您的主目录下创建一个目录,例如 ~/remote-server:
$ mkdir ~/remote-server
然后使用 挂载远程文件系统sshfs
。将“yourserver.com”替换为远程计算机的主机名,将“远程目录名称”替换为您在远程系统上使用的目录。
$ sudo sshfs [email protected]:/name/of/remote/directory ~/remote-server/
完成此操作后,远程目录就是文件系统的一部分,您可以在其上使用所有常规工具,包括cp
:
$ cp ~/Downloads/your-files ~/remote-server
如果您尚未安装sshfs
,您应该能够使用包管理器将其安装在您的计算机上(查找名为sshfs
或 的包fuse-sshfs
)。欲了解更多信息,您可以阅读在线教程。
顺便说一句,这是我最喜欢的在远程服务器上管理文件的方式。我通常以这种方式安装一台生产服务器和两台开发服务器,并使用它们的正常文件浏览工作流程。
答案4
添加到上面的答案。有时我不太确定远程路径。在这些情况下,我sftp
首先导航到所需位置,然后使用 get 或 put 实际下载或上传文件。
如果您还想保持某些内容始终同步,甚至想在本地执行位于远程计算机上的某些文件,sshfs
那么效果很好。