我阅读了有关scp的一系列说明和答案
scp-如何将文件从远程服务器复制到本地计算机?-Unix和Linux堆栈交换
但我不能正确地运用它
$ pwd
#the local path on local machine
pwd
/Users/me/PubRepo/bash
当我尝试将文件从远程文件复制到本地文件时
[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
我的用法有什么问题?
从控制台日志中,您好像scp
在a_test_file.md
创建远程主机上调用,但是您将其.
用作第二个参数,即destination。呼叫总是先有源,然后才有目的地。就像注释中提到的@jimmij一样,这将从另一个远程复制相同名称的另一个文件。
因此,您有两种可能性:
scp
从应该结束文件的计算机(您的本地计算机)进行调用。假设icodehero.com
您是远程计算机,则scp
您使用的呼叫是正确的,只是在错误的计算机上。
将scp
呼叫更改为scp a_test_file.md user@your_local_machine:.
,只有在远程服务器也可以通过ssh访问本地计算机时,才可以将其更改为。
如果您想知道为什么复制显示为成功,那么我假设icodehero.com
是在其上创建文件的机器,在这种情况下,您的遥控器从其自身复制了文件(这会覆盖文件本身,实际上什么也没做)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句