SCP(Secure Copy)是一个用于在本地和远程主机之间进行安全文件传输的命令行工具。它使用SSH协议进行加密和身份验证,可以在不同的操作系统之间传输文件。
SCP命令的基本语法如下:
scp [选项] [源文件] [目标文件]
常用的选项包括:
-r
:递归复制整个目录。-p
:保留源文件的修改时间、访问时间和权限。-q
:安静模式,不显示进度信息。-P <port>
:指定远程主机上的SSH端口号,默认为22。-i <identity_file>
:指定身份验证所使用的私钥文件。
源文件和目标文件的格式可以是:
- 本地文件路径:
/path/to/local/file
- 远程主机上的文件路径:
user@host:/path/to/remote/file
- 远程主机上的文件路径(使用非默认SSH端口号):
user@host -p <port>:/path/to/remote/file
以下是一些常见的用法示例:
- 从本地复制文件到远程主机:
scp /path/to/local/file user@host:/path/to/remote/file
- 从远程主机复制文件到本地:
scp user@host:/path/to/remote/file /path/to/local/file
- 递归复制整个目录:
scp -r /path/to/local/directory user@host:/path/to/remote/directory
- 从远程主机复制整个目录到本地:
scp -r user@host:/path/to/remote/directory /path/to/local/directory
请注意,SCP命令是单向的,即只能从源文件复制到目标文件,不能同时复制到多个目标。如果需要同时复制到多个目标,可以考虑使用rsync命令。
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
以下是一些常见的用法示例:
- 从本地复制文件到远程主机:
rsync /path/to/local/file user@host:/path/to/remote/file
- 从远程主机复制文件到本地:
rsync user@host:/path/to/remote/file /path/to/local/file
- 递归复制整个目录:
rsync -r /path/to/local/directory user@host:/path/to/remote/directory
- 从远程主机复制整个目录到本地:
rsync -r user@host:/path/to/remote/directory /path/to/local/directory
- 使用SSH密钥进行远程传输:
rsync -e "ssh -i /path/to/private/key" /path/to/local/file user@host:/path/to/remote/file
rsync还支持其他高级功能,如过滤规则、增量备份等。你可以使用man rsync
命令查看rsync的完整文档,了解更多选项和用法。