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
替代)。
如果你有具体的使用需求,可以告诉我,我可以给你更详细的示例!