我在机器 A 上,想从机器 B 中提取文件。
A$ scp <myuserid>@hostB:<path of file in B> .
它说:
scp: <path of file in B>: No such file or directory
但在B机器上,这个文件存在于这个路径中。
出了什么问题?
答案1
您没有指定任何文件:您必须在冒号后添加文件(带有路径):
A$ scp <myuserid>@hostB:/absolutepath/file .
或者
A$ scp <myuserid>@hostB:relativepath/file .
相对于您的主目录的路径。
如果您没有指定不同的用户(即 A 和 B 上的用户相同),则不需要@
A$ scp hostB:/path/file .
答案2
$ scp username@remoteip:remote_location_file /location/where/you/save
就像注释一样:这仅在复制文件时有效。如果要复制目录,请使用
$ scp -r username@remoteip:remote_location_directory /location/where/you/save
我们已经在第二个命令中看到了递归选项。列出了此选项以及您可以根据需要使用的其他选项从手册页:
-r
递归复制整个目录。-P port
指定要连接到远程主机上的端口。注意这个选项是用大写的“P”写的,因为-p已经被保留用于在rcp中保留文件的时间和模式。-p
保留原始文件的修改时间、访问时间和模式。-v
详细模式。使 scp 和 ssh 打印有关其进度的调试消息。这有助于调试连接、身份验证和配置问题。
答案3
使用正确的 scp 路径
scp ssh://user@hostname/tmp/foo.txt .
答案4
如果有 DMZ 用户和密码,则可以轻松进行双向 SCP 您在本地计算机上:从 DMZ 到本地 Linux 计算机(拉取)。意味着复制到您当前登录的密码abc.text
中。folder2
scp user@111111:folder1/folder2/abc.txt .
它会要求输入密码
就这样
现在您想要将文件夹、子文件夹和文件从本地计算机发送到 DMZ:
usr@localmachine:~/abc/defs> scp -r folder/ usr@111111:vkrishna/docker/
将会再次询问密码
:
是远程计算机的根文件夹,vkrishna 是其中的一个文件夹,也是 docker 子文件夹。本地defs文件夹中有一个名为folder
我们要完全转移的文件夹。
喜欢/abc/defs/folder