scp 文件从远程到本地失败

scp 文件从远程到本地失败

我阅读了有关 scp 的一系列说明和答案

安全复制 (scp) 的语法示例

scp - 如何将文件从远程服务器复制到本地计算机? - Unix 和 Linux 堆栈交换

但我无法正确应用它

$ pwd
#the local path on local machine
pwd
/Users/me/PubRepo/bash

当我尝试将文件从远程 scp 到本地时

[root@iz2ze9wve43n2nyuvmsfx5z ~]# echo "scp test message" > a_test_file.md
[root@iz2ze9wve43n2nyuvmsfx5z ~]# cat a_test_file.md
scp test message
[root@iz2ze9wve43n2nyuvmsfx5z ~]# pwd
/root
[root@iz2ze9wve43n2nyuvmsfx5z ~]# scp [email protected]:a_test_file.md  .
[email protected]'s password: 
a_test_file.md                                                                  100%   17     3.6KB/s   00:00    
[root@iz2ze9wve43n2nyuvmsfx5z ~]# 

提示转移成功,但是我本地没有找到

ls | grep "a_test_file.md"
#does not return 

另外它在本地任何地方都不存在

find / -name "a_test_file.md" 2>/dev/null                                                              
## no match

我的使用有什么问题吗?

答案1

从控制台日志来看,您似乎在创建的scp远程主机上调用,但您使用第二个参数,即a_test_file.md.目的地。呼叫始终首先是源,然后是目的地。就像@jimmij 在评论中提到的那样,这将从另一个远程复制另一个具有相同名称的文件。

所以你有两种可能性:

  1. scp从文件应该结束的计算机(您的本地计算机)调用。假设icodehero.com是您的远程机器,scp您使用的调用是正确的,只是在错误的机器上。

  2. 将调用更改scpscp a_test_file.md user@your_local_machine:.,这只有在远程也可以通过 ssh 访问本地计算机的情况下才可能实现。


如果您想知道为什么复制显示为成功,我假设icodehero.com是您创建文件的机器,在这种情况下,您的遥控器从自身复制了文件(这会用自身覆盖文件,实际上什么都不做)。

相关内容