scp指令使用
时间: 2025-07-30 15:06:38 浏览: 3
在Linux系统之间使用`scp`命令进行文件传输是一种安全、高效的方法。以下是详细的使用方法和常见场景。
### 3.1 基本命令格式
`scp`命令的基本格式如下:
```bash
scp [参数] 源文件 目标路径
```
- **源文件**:可以是本地路径(如`/home/user/file.txt`)或远程路径(如`user@remote:/path/file.txt`)。
- **目标路径**:格式与源文件相同,支持本地和远程路径。
### 3.2 从本地复制文件到远程主机
要将本地文件复制到远程主机,可以使用以下命令:
```bash
scp /path/to/local/file username@remote_host:/path/to/remote/directory
```
例如,将本地文件`/home/user/test.txt`复制到远程主机`192.168.1.100`上的`/home/remote_user/`目录:
```bash
scp /home/user/test.txt [email protected]:/home/remote_user/
```
系统会提示输入远程主机的用户密码,输入后开始传输文件。
### 3.3 从远程主机复制文件到本地
要将远程主机上的文件复制到本地,可以使用以下命令:
```bash
scp username@remote_host:/path/to/remote/file /path/to/local/directory
```
例如,将远程主机`192.168.1.100`上的`/home/remote_user/test.txt`文件复制到本地`/home/user/`目录:
```bash
scp [email protected]:/home/remote_user/test.txt /home/user/
```
同样,系统会提示输入密码后开始传输。
### 3.4 递归复制整个目录
如果需要复制整个目录,可以使用`-r`参数进行递归复制:
```bash
scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory
```
例如,将本地目录`/home/user/myfolder`复制到远程主机`192.168.1.100`上的`/home/remote_user/`目录:
```bash
scp -r /home/user/myfolder [email protected]:/home/remote_user/
```
### 3.5 使用指定的SSH端口
如果远程主机的SSH服务不在默认的22端口,可以使用`-P`参数指定端口号:
```bash
scp -P 2222 /path/to/local/file username@remote_host:/path/to/remote/directory
```
例如,远程主机的SSH端口为`2222`,将本地文件`/home/user/test.txt`复制到远程主机:
```bash
scp -P 2222 /home/user/test.txt [email protected]:/home/remote_user/
```
### 3.6 使用私钥文件进行身份验证
如果使用SSH密钥进行身份验证,可以使用`-i`参数指定私钥文件:
```bash
scp -i /path/to/private_key /path/to/local/file username@remote_host:/path/to/remote/directory
```
例如,使用私钥`~/.ssh/id_rsa`将本地文件`/home/user/test.txt`复制到远程主机:
```bash
scp -i ~/.ssh/id_rsa /home/user/test.txt [email protected]:/home/remote_user/
```
### 3.7 传输过程中的进度显示
执行`scp`命令时,会自动显示传输进度,包括已传输的文件数量和传输速度。例如:
```bash
test.txt 100% 10MB 1.2MB/s 00:08
```
这表示文件`test.txt`已经传输完成,大小为10MB,传输速率为1.2MB/s,耗时8秒。
###
阅读全文
相关推荐




















