linux scp传输文件 作者:马育民 • 2020-03-14 12:03 • 阅读:10792 # 介绍 scp是 secure copy 的缩写,相当于cp命令 + SSH。它的底层是 SSH 协议,默认端口是22,相当于先使用ssh命令登录远程主机,然后再执行拷贝操作。 使用scp传输数据时,**文件** 和 **密码** 都是 **加密** 的,不会泄漏敏感信息。 scp主要用于以下三种复制操作: - 本地上传文件到远端。 - 从远端下载文件到本地。 - 两个远程之间的文件传输。 更详细的用法参见: https://github.com/wangdoc/ssh-tutorial/blob/main/docs/scp.md # 上传 本地上传文件到远端 ### 上传文件 在终端执行: ``` scp 本地文件路径 用户名@ip:远端保存目录 ``` 然后输入linux登录密码 ##### 例子: ``` scp /Users/mym/Desktop/python/docs-r2.0.zip root@192.168.0.100:/root ``` 将本地的`/Users/mym/Desktop/python/docs-r2.0.zip`文件上传到ip是192.168.0.1的`/root`文件夹下 ### 上传文件夹 在终端执行: ``` scp -r 本地文件夹路径 用户名@ip:远端保存目录 ``` **解释:** - 本地文件路径:可以有通配符`*`,代表所有文件、文件夹 - 然后输入linux登录密码 ##### 例子 ``` scp -r /program/jdk1.8.0_202 root@hadoop3:/program ``` ``` scp -r /program/* root@hadoop3:/program ``` 通配符`*`,代表 `/program/` 目录下所有文件、文件夹 ### 常见错误 如果用ssh登录到linux,此时执行scp命令报错,提示`SCP No such file or directory` 因为当前登录到linux,scp后面的文件路径是mac电脑的,linux服务器当然找不到 # 下载 ### 下载文件 将远端文件下载到本地,在终端执行: ``` scp 用户名@ip:远端文件路径 本地保存目录 ``` 然后输入linux登录密码 ##### 例子 ``` scp root@192.168.0.100:/root/java8.py /Users/mym/Desktop/python/ ``` ### 下载文件夹 将远端文件夹下载到本地,在终端执行: ``` scp -r 用户名@ip:远端文件路径 本地保存目录 ``` **解释:** - 本地文件路径:可以有通配符`*`,代表所有文件、文件夹 - 然后输入linux登录密码 ##### 例子 ``` scp -r root@hadoop1:/program/hadoop-3.0.3 /program ``` ``` scp -r root@hadoop1:/program/* /program ``` 通配符`*`,代表 `/program/` 目录下所有文件、文件夹 # 两个远程之间的文件传输 在 本机,将 `远程电脑A` 的文件夹,发送给 `远程电脑B` ### 例子 ``` scp -r root@hadoop1:/program/hadoop-3.0.3 root@hadoop3:/program/ ``` ``` scp -r root@hadoop1:/program/* root@hadoop3:/program/ ``` 通配符 `*`,代表 `/program/` 目录下所有文件、文件夹 原文出处:http://malaoshi.top/show_1EF59gZHIwTY.html