linux+scp命令格式
linux+scp命令格式详细介绍
在 Linux 中,scp(Secure Copy Protocol)命令用于通过安全的 SSH 协议在本地与远程主机之间复制文件或目录。其核心语法格式如下:
基础命令格式
bash
选项 源文件/目录 目标路径
关键参数说明
- 源文件 / 目录:可以是本地路径(如
/home/user/file.txt)或远程路径(格式为用户@远程主机IP:远程路径,例如root@192.168.1.10:/data/doc)。 - 目标路径:与源文件 / 目录的格式规则一致(本地或远程路径)。
- 常用选项:
-r:递归复制目录(复制整个目录时必须使用)。-P:指定 SSH 连接端口(注意是大写P,默认端口为 22)。-v:显示复制过程的详细信息(用于调试)。-q:静默模式(不显示进度和提示信息)。
常见使用场景示例
1. 本地文件上传到远程主机
将本地文件 /home/user/report.pdf 上传到远程主机 192.168.1.10 的 /data/ 目录下(远程用户为 admin):
bash
/home/user/report.pdf admin@192.168.1.10:/data/
2. 从远程主机下载文件到本地
从远程主机 192.168.1.10 的 /data/logs/error.log 下载到本地 /home/user/backup/ 目录:
bash
admin@192.168.1.10:/data/logs/error.log /home/user/backup/
3. 复制整个目录(需
-r 选项)
将本地目录 /home/user/project 递归上传到远程主机的 /data/ 目录:
bash
/home/user/project admin@192.168.1.10:/data/
4. 指定 SSH 端口(默认 22,若远程主机修改过端口)
假设远程主机的 SSH 端口是 2222,上传本地文件:
bash
/home/user/file.txt admin@192.168.1.10:/data/
912scp /home/user/file.txt admin@192.168.1.10:/data/
5. 远程主机之间复制文件(通过本地中转)
将远程主机 A(userA@hostA:/path/file)的文件复制到远程主机 B(userB@hostB:/path/),需本地主机能同时访问 A 和 B:
bash
userA@hostA:/path/file userB@hostB:/path/
912scp userA@hostA:/path/file userB@hostB:/path/
注意事项
- 远程操作需要目标主机开放 SSH 服务,且用户具备对应路径的读写权限。
- 若提示
Permission denied,可能是 SSH 连接认证失败(如密码错误)或目标路径无写入权限。 - 大文件 / 目录复制时,可结合
-v选项查看进度,或使用rsync命令(支持断点续传)提升效率。