scp 命令详解
SCP (Secure Copy) 是一个在 Linux 和 Unix-like 系统中广泛使用的命令行工具,用于通过 SSH (Secure Shell) 协议在本地与远程主机之间安全地复制文件和目录。以下是使用 SCP 命令的一些基本用法和示例:
基本语法
scp [选项] [源文件或目录] [目标文件或目录]其中:
[选项]:可选参数,用于指定复制行为的细节,如端口、压缩、身份验证等。[源文件或目录]:要复制的文件或目录的路径。如果是远程文件或目录,格式通常是user@hostname:path。[目标文件或目录]:复制的目的地路径。同样,对于远程目标,使用user@hostname:path的格式。
示例
从本地复制到远程
将本地文件 local_file.txt 复制到远程主机 remote_host 上的用户 remote_user 的家目录:
scp local_file.txt remote_user@remote_host:/home/remote_user/从远程复制到本地
从远程主机 remote_host 上的用户 remote_user 的家目录下载文件 remote_file.txt 到本地当前目录:
scp remote_user@remote_host:/home/remote_user/remote_file.txt .注意 . 表示当前目录。
复制目录(递归复制)
使用 -r 或 --recursive 选项复制整个目录及其内容:
# 从本地复制目录到远程
scp -r local_directory remote_user@remote_host:/remote/path/
# 从远程复制目录到本地
scp -r remote_user@remote_host:/remote/path/remote_directory .指定端口
当远程SSH服务运行在非默认端口(如2222)上时,使用 -P 或 --port 选项指定端口:
scp -P 2222 local_file.txt remote_user@remote_host:/home/remote_user/压缩传输
使用 -C 或 --compression 选项启用压缩,以减少传输数据量,特别是在网络带宽有限的情况下:
scp -C local_file.txt remote_user@remote_host:/home/remote_user/保持原文件属性
使用 -p 或 --preserve 选项保留原文件的修改时间、访问时间和权限模式:
scp -p local_file.txt remote_user@remote_host:/home/remote_user/身份验证
使用 SCP 命令时,需要确保已经设置了正确的 SSH 公钥/私钥对以便无密码登录,或者在首次连接时手动输入远程用户的密码。如果需要频繁复制且不想每次都输入密码,建议配置 SSH 公钥认证以实现免密登录。
注意事项
- 确保目标路径存在且有适当的写权限。
- 请确保 SSH 服务在远程主机上正常运行且防火墙规则允许 SSH 连接。
- 若使用非默认端口,需确保远程主机上的 SSH 服务监听该端口。
- 考虑使用
-v或--verbose选项获取详细的复制过程信息,用于调试连接问题。
以上就是使用 SCP 命令的基本方法和示例,根据实际需求选择相应的选项和参数进行文件和目录的复制操作。