Answers:
您没有指定任何文件:您必须在冒号后面添加文件(带有路径):
A$ scp <myuserid>@hostB:/absolutepath/file .
要么
A$ scp <myuserid>@hostB:relativepath/file .
相对于您的主目录的路径。
如果您未指定其他用户(即A和B上的用户相同),则不需要 @
A$ scp hostB:/path/file .
$ scp username@remoteip:remote_location_file /location/where/you/save
仅在复制文件时有效。如果要复制目录,请使用
$ scp -r username@remoteip:remote_location_directory /location/where/you/save
您可以根据需要使用的选项
-P端口
指定要在远程主机上连接的端口。请注意,此选项用大写字母“ P”编写,因为-p已经保留用于保留rcp中文件的时间和模式。
-p
保留原始文件的修改时间,访问时间和模式。
-r
递归复制整个目录。
-v
详细模式。使scp和ssh打印有关其进度的调试消息。这有助于调试连接,身份验证和配置问题。
使用正确的scp路径
scp ssh://user@hostname/tmp/foo.txt .
您可以指定相对于主目录的文件路径,也可以指定绝对文件路径。例如,如果foo.txt
位于docs
主目录下的目录中,而bar.txt
位于中/var/tmp
,则可以执行
scp username@host.example.com:docs/foo.txt .
scp username@host.example.com:/var/tmp/bar.txt .
请注意,如果文件名包含远程外壳程序专用的字符(通常为空格或!"#$&'*;<>?[\]^`{|}~
),则除了将其转义为本地外壳程序外,还需要对远程外壳程序转义它们。例如,如果文件被调用foo bar.txt
并且位于您的主目录中:
scp username@host.example.com:'foo\ bar.txt' .
如果您对包含标点符号的文件有困难,请尝试使用sftp
而不是scp
进行传输。或者,如果可以使用FUSE,则使用更方便的方法:使用sshfs挂载远程计算机的文件系统,然后使用普通的文件操作命令。
mkdir host.example.com
sshfs username@host.example.com:/ host.example.com
cp host.example.com/path/to/file .
如果一个人具有DMZ用户和密码,那么一个人就可以轻松实现两种方式:您在本地计算机上:从DMZ到本地Linux计算机(拉)。意味着将folder2内的abc.text复制到您当前登录的PWD中。
scp user@111111:folder1/folder2/abc.txt .
它将要求输入密码
就这样
现在您要发送一个文件夹,它将子文件夹和文件从本地计算机发送到DMZ:
usr @ localmachine:〜/ abc / defs> scp -r文件夹/ usr @ 111111:vkrishna / docker /
再次要求输入密码
:是远程计算机的根文件夹,而vkrishna是那里的文件夹,也是docker子文件夹。在本地defs文件夹中有一个我们要完全转移的名为“文件夹”的文件夹。
像/ abc / defs / folder