SCP 无法识别目标文件路径

SCP not recognizing destination file path

我想将目录 .env/ 中的环境文件从本地计算机复制到远程计算机。

根据this的回答,我尝试了以下但出现错误:

stephen@desktop:~/Projects/finance$ scp -r .env root@<MY_IP_INSTANCE>:/finance
scp: /finance/.env: Not a directory

我已验证该目录存在于我的本地机器上:

stephen@desktop:~/Projects/finance$ ls -al | grep .env
drwxrwxr-x  2 stephen stephen      4096 Nov 12 14:25 .env

我确认它在我的远程机器上不存在:

root@localhost:~/finance# ls -al |grep .env
root@localhost:~/finance#

根据网上的资源,如果要复制整个文件夹,源路径应该去掉文件路径尾部的/。我遇到了精神错乱,我尝试了源路径和目标路径的所有组合。

编辑: Here 是我正在使用的 VPS 的 linode 文档。似乎是相互矛盾的信息。

EDIT2:这是有效的方法

stephen@desktop:~/Projects/finance$ scp -r .env root@173.255.210.31:finance
.dev.local    100%  712    20.0KB/s   00:00    
.prod         100%  595    21.2KB/s   00:00     
.prod.local   100%  710    24.7KB/s   00:00     
.dev          100%  597    20.2KB/s   00:00 

您需要删除斜杠。你写的是指另一台机器上的根文件夹。从您的验证步骤可以清楚地看出您指的是 root 的主文件夹 (/root):

scp -r .env root@<MY_IP_INSTANCE>:finance
# or, explicitly
scp -r .env root@<MY_IP_INSTANCE>:/root/finance

您需要提供路径为 /usr/{用户名}/Projects/finance。

所以你的命令应该是

scp -r .env root@<MY_IP_INSTANCE>:/usr/{yourUserName}/Projects/finance

您可以转到财务文件夹找到路径,然后运行

pwd

默认使用的路径是 /finance 而不是 ~/finance,这意味着它正在根目录 ('/') 中查找 finance 文件夹。