是否可以将目录从远程会话复制到本地计算机?

是否可以将目录从远程会话复制到本地计算机?

我一直在远程服务器上的屏幕会话中运行我的代码。我想使用 SCP 将远程服务器上此会话中生成的输出目录移动到本地服务器,但我无法这样做。

  1. 有没有办法做到这一点?

  2. 如果没有,我如何将文件夹从屏幕会话复制到远程服务器(以便我可以 SCP 到本地服务器)?

目前,这就是我所做的。

ssh [email protected]
[email protected]$ screen -r xxxx.pt
root@xxxxxx# ls media
Experiment_A

本地服务器

scp [email protected]:/media/Experiment_A/features /Users/local/ExpResult

(输出)

scp: /media/Experiment_A/features: No such file or directory

答案1

您似乎正在重新连接由 root 启动的会话。这些文件可能位于/root.

无论它们在哪里,您都可能必须更改文件权限才能读取它们。看在 gnu/linux 上设置文件权限等有哪些不同方法

它们也可能位于仅限单个用户的安装点上。如果是这样,如果文件很小,则将它们复制到远程计算机上的您自己,然后 scp。

答案2

scp我看起来好像你的命令中的路径有点错误。

以下应该有效:

scp [email protected]:media/Experiment_A/features /Users/local/ExpResult

说明:当您登录到远程计算机时,您最终会进入主目录。这是最有可能的/home/usernameusername你的用户名在哪里)。在您的主目录中,您有该media子目录。

scp命令中,如果您指定相对路径,即不以 开头的路径/,该路径将相对于您的主目录。因此,只需从/命令中使用的路径中删除 ,您就可以获得最有可能正确复制文件的路径media/Experiment_A/features

如果这不起作用,那是因为screen会话已将其当前目录更改为其他位置。然后您可以做的是pwd在会话中发出命令,然后使用scp命令中输出的路径。

另一件要尝试的事情是scp执行偏僻的机器将文件传输到本地机器。显然,只有当您被允许使用 SSH 从该计算机本地登录时,这才有效。

相关内容