我有一些R代码,一方面,我连接到 sftp 并尝试下载一些文件。需要下载的文件由R代码决定,可以是一个也可以是多个。我正在尝试使用mget下载文件,但它似乎不起作用:
sftp> mget abc.PDF def.PDF ghi.PDF
Fetching /abc.PDF to def.PDF
Run Code Online (Sandbox Code Playgroud)
它只是下载 abc.PDF 并将其作为 def.PDF 存储在本地目录中,而不是下载所有三个文件。我在做什么?
它不起作用,因为 OpenSSHsftp不支持它。它与(事实上,甚至没有记录在联机帮助页中)mget相同,并且仅采用一个远程文件名参数(尽管该参数可以是一个 glob)。getmgethelp
因此,要使用 OpenSSH SFTP 客户端,您需要为get每个文件发出一个。或者,您可以使用不同的 SFTP 客户端(例如,lftp具有mget您想要的功能)。或者(感谢 Gilles 的提醒)您可能会发现使用 sshfs(通过 FUSE)然后使用普通文件复制命令(cp或 R 内置的任何命令)更方便。
mget 与参数的“源文件”部分的 glob 一起使用(至少在 OpenSSH 7.3 版中):
sftp> ls *.pdf
foo.pdf bar.pdf
sftp> mget *.pdf
Fetching /home/jdoe/bar.pdf to bar.pdf
Fetching /home/jdoe/foo.pdf to foo.pdf
sftp>
Run Code Online (Sandbox Code Playgroud)
如果 glob get 捕获太多,您将需要以某种方式循环文件并一个一个地获取它们。
| 归档时间: |
|
| 查看次数: |
42832 次 |
| 最近记录: |