scp
(Secure Copy Protocol)是一个基于SSH(Secure Shell)协议的文件传输命令,用于在不同的计算机之间安全地复制文件和目录。它使用SSH协议进行数据传输,并提供了文件加密和身份验证功能,确保数据传输的安全性。
scp
的特点
- 安全性:通过SSH协议进行加密传输,保证数据的安全。
- 跨平台:可以在不同操作系统之间传输文件,例如从Linux到Windows或从Mac到Linux。
- 简单易用:语法简洁,操作方便。
scp
的基本语法
scp [options] [source] [destination]
常用命令和示例
-
从本地复制到远程
scp local_file user@remote_host:/remote/directory/
- 示例:
scp /path/to/local_file.txt user@192.168.1.1:/home/user/
- 示例:
-
从远程复制到本地
scp user@remote_host:/remote/file /local/directory/
- 示例:
scp user@192.168.1.1:/home/user/remote_file.txt /path/to/local_directory/
- 示例:
-
从远程复制到另一个远程
scp user1@remote_host1:/remote/file user2@remote_host2:/remote/directory/
- 示例:
scp user@192.168.1.1:/home/user/remote_file.txt user@192.168.1.2:/home/user/
- 示例:
-
复制整个目录
scp -r /local/directory user@remote_host:/remote/directory/
- 示例:
scp -r /path/to/local_directory user@192.168.1.1:/home/user/
- 示例:
-
指定端口
scp -P port_number /local/file user@remote_host:/remote/directory/
- 示例:
scp -P 2222 /path/to/local_file.txt user@192.168.1.1:/home/user/
- 示例:
常用选项
-r
:递归复制整个目录。-P
:指定远程服务器的端口号(注意是大写的P)。-C
:在传输过程中启用压缩。-i
:指定私钥文件进行身份验证。-v
:启用详细模式,显示调试信息。-q
:禁用进度显示和非错误消息。
示例解释
-
从本地复制文件到远程
scp /path/to/local_file.txt user@192.168.1.1:/home/user/
- 将本地文件
/path/to/local_file.txt
复制到远程主机192.168.1.1
上用户user
的/home/user/
目录下。
- 将本地文件
-
从远程复制文件到本地
scp user@192.168.1.1:/home/user/remote_file.txt /path/to/local_directory/
- 将远程主机
192.168.1.1
上用户user
的/home/user/remote_file.txt
复制到本地目录/path/to/local_directory/
。
- 将远程主机
-
复制整个本地目录到远程
scp -r /path/to/local_directory user@192.168.1.1:/home/user/
- 将本地目录
/path/to/local_directory
及其所有内容递归复制到远程主机192.168.1.1
上用户user
的/home/user/
目录下。
- 将本地目录
-
指定端口进行复制
scp -P 2222 /path/to/local_file.txt user@192.168.1.1:/home/user/
- 使用端口
2222
通过 SSH 将本地文件/path/to/local_file.txt
复制到远程主机192.168.1.1
上用户user
的/home/user/
目录下。
- 使用端口
注意事项
- 确保远程主机上的用户具有目标目录的写权限。
- 如果使用私钥文件进行身份验证,确保私钥文件的权限正确(通常是
600
)。
通过这些命令和选项,你可以高效、安全地在不同计算机之间传输文件和目录。scp
提供了一种简单而强大的方式来处理远程文件传输需求。