scp(Secure Copy)是 Linux/Unix 系统中用于安全复制文件的命令,基于 SSH 协议加密传输数据。它可以在本地和远程主机之间传输文件或目录。
## scp 语法
scp [选项] <源路径> <目标路径>- <源路径> 和 <目标路径> 可以是本地路径或远程路径。
- 远程路径格式user@host:/path/to/file
## scp 常见用法
### 1. 从本地复制到远程
scp localfile user@remote:/remote/path/示例:
scp /home/user/file.txt root@192.168.1.100:/root/将本地 /home/user/file.txt 复制到远程 192.168.1.100 的 /root/ 目录下。
### 2. 从远程复制到本地
scp user@remote:/remote/file /local/path/示例:
scp root@192.168.1.100:/root/file.txt /home/user/将远程服务器 192.168.1.100 上的 /root/file.txt 复制到本地 /home/user/ 目录。
### 3. 递归复制整个目录-r)
scp -r localdir user@remote:/remote/path/示例:
scp -r /home/user/data root@192.168.1.100:/root/递归复制 /home/user/data 目录到远程 /root/ 目录。
### 4. 指定 SSH 端口-P)
scp -P 2222 file.txt user@remote:/remote/path/示例:
scp -P 2222 /home/user/file.txt root@192.168.1.100:/root/指定 SSH 端口 2222 连接远程服务器。
### 5. 限制带宽-l)
scp -l 1000 file.txt user@remote:/remote/path/限制传输速率为 1000 Kbit/s。
### 6. 指定 SSH 私钥-i)
scp -i ~/.ssh/id_rsa file.txt user@remote:/remote/path/使用指定的 SSH 私钥进行身份验证。
### 7. 多个文件或目录复制
scp file1 file2 user@remote:/remote/path/scp -r dir1 dir2 user@remote:/remote/path/示例:
scp file1.txt file2.txt root@192.168.1.100:/root/同时传输多个文件。
## scp 相关注意事项
1. scp 需要 SSH 服务器在远程主机上运行,并具备访问权限。
2. scp 适用于简单文件传输,若需要更强大的功能(如断点续传),建议使用 rsync。
3. scp 可能被 sftp 或 rsync 替代,部分新系统可能默认不再包含 scp(可以使用 sftp 替代)。
如果你有具体的使用需求,可以告诉我,我可以给你更详细的示例!