如何在R Studio中通过SSH连接服务器并设置远程工作目录?
在RStudio中通过SSH连接后设置远程服务器工作目录的方法
用ssh包建立SSH会话后,R的setwd()只能操作本地文件系统,没法直接把远程路径设为R的工作目录,所以你之前试的几种setwd写法都不生效。下面是两种可行的解决思路:
思路1:通过ssh包直接操作远程文件
ssh包的核心是通过SSH会话执行远程命令或处理远程文件,不需要切换R的工作目录,直接针对远程路径操作即可:
- 查看远程服务器的当前目录:
ssh_exec_wait(session, command = "pwd")
- 执行远程命令时指定目标路径,比如列出远程某目录下的文件:
ssh_exec_wait(session, command = "ls /path/to/your/remote/folder")
- 读取远程文件时,用
ssh_file()创建远程文件连接,再用常规的读取函数操作:
# 建立远程文件连接 remote_csv <- ssh_file(session, "/path/to/remote/data.csv") # 读取文件 df <- read.csv(remote_csv)
思路2:把远程目录挂载到本地(像操作本地文件一样)
如果希望直观地用setwd()切换到远程目录,可以把远程服务器的目录挂载到本地文件系统:
- macOS/Linux:用
sshfs命令(需要先安装sshfs工具):
sshfs server@name:/path/to/remote/directory /your/local/mount/folder
- Windows:用WinSCP的「映射网络驱动器」功能,或者安装SSHFS-Win工具完成挂载。
挂载完成后,在R里直接把工作目录设为本地挂载点即可:
setwd("/your/local/mount/folder")
之后就能像操作本地文件一样读写远程服务器上的文件了。
内容的提问来源于stack exchange,提问作者Sophia Martin
相关产品推荐
相关产品推荐

