SCP(Secure Copy)是一个用于在本地和远程主机之间进行安全文件传输的命令行工具。它使用SSH协议进行加密和身份验证,可以在不同的操作系统之间传输文件。
SCP命令的基本语法如下:
```
scp [选项] [源文件] [目标文件]
```
常用的选项包括:
- `-r`:递归复制整个目录。
- `-p`:保留源文件的修改时间、访问时间和权限。
- `-q`:安静模式,不显示进度信息。
- `-P `:指定远程主机上的SSH端口号,默认为22。
- `-i `:指定身份验证所使用的私钥文件。
源文件和目标文件的格式可以是:
- 本地文件路径:`/path/to/local/file`
- 远程主机上的文件路径:`user@host:/path/to/remote/file`
- 远程主机上的文件路径(使用非默认SSH端口号):`user@host -p :/path/to/remote/file`
以下是一些常见的用法示例:
1. 从本地复制文件到远程主机: ```
scp /path/to/local/file user@host:/path/to/remote/file
```
2. 从远程主机复制文件到本地: ```
scp user@host:/path/to/remote/file /path/to/local/file
```
3. 递归复制整个目录: ```
scp -r /path/to/local/directory user@host:/path/to/remote/directory
```
4. 从远程主机复制整个目录到本地: ```
scp -r user@host:/path/to/remote/directory /path/to/local/directory
```
请注意,SCP命令是单向的,即只能从源文件复制到目标文件,不能同时复制到多个目标。如果需要同时复制到多个目标,可以考虑使用rsync命令。
</div></div></div>
rsync是一个强大的文件同步和备份工具,它可以在本地和远程主机之间进行文件传输,并且只传输已更改的部分,从而提高传输效率。
rsync命令的基本语法如下:
```
rsync [选项] [源路径] [目标路径]
```
常用的选项包括:
- `-a, --archive`:归档模式,保留文件的所有属性,递归复制目录。
- `-r, --recursive`:递归复制目录。
- `-v, --verbose`:详细输出。
- `-z, --compress`:压缩传输数据。
- `-P`:显示传输进度和保留部分文件。
- `-e, --rsh=COMMAND`:指定远程shell程序,例如ssh。
源路径和目标路径的格式可以是:
- 本地路径:`/path/to/local/file`或`/path/to/local/directory`
- 远程主机路径:`user@host:/path/to/remote/file`或`user@host:/path/to/remote/directory`
以下是一些常见的用法示例:
1. 从本地复制文件到远程主机: ```
rsync /path/to/local/file user@host:/path/to/remote/file
```
2. 从远程主机复制文件到本地: ```
rsync user@host:/path/to/remote/file /path/to/local/file
```
3. 递归复制整个目录: ```
rsync -r /path/to/local/directory user@host:/path/to/remote/directory
```
4. 从远程主机复制整个目录到本地: ```
rsync -r user@host:/path/to/remote/directory /path/to/local/directory
```
5. 使用SSH密钥进行远程传输: ```
rsync -e "ssh -i /path/to/private/key" /path/to/local/file user@host:/path/to/remote/file
```
rsync还支持其他高级功能,如过滤规则、增量备份等。你可以使用`man rsync`命令查看rsync的完整文档,了解更多选项和用法。