我阅读了有关 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 在评论中提到的那样,这将从另一个远程复制另一个具有相同名称的文件。
所以你有两种可能性:
scp
从文件应该结束的计算机(您的本地计算机)调用。假设icodehero.com
是您的远程机器,scp
您使用的调用是正确的,只是在错误的机器上。将调用更改
scp
为scp a_test_file.md user@your_local_machine:.
,这只有在远程也可以通过 ssh 访问本地计算机的情况下才可能实现。
如果您想知道为什么复制显示为成功,我假设icodehero.com
是您创建文件的机器,在这种情况下,您的遥控器从自身复制了文件(这会用自身覆盖文件,实际上什么都不做)。