scp命令是基于SSH协议的安全文件传输工具,用于本地与远程主机间的文件复制;其基本语法为“scp [选项] 源路径 目标路径”,支持本地到远程、远程到本地及远程到远程传输;常见用法包括:本地文件上传至远程主机、从远程下载文件、远程间中转复制、递归复制目录(-r)、指定非默认SSH端口(-P);常用选项有-r、-P、-v、-C、-q;使用时需确保SSH服务开启,支持密码或免密登录,但不支持断点续传,大文件建议用rsync替代。
在Linux系统中,远程复制文件是日常运维和开发中的常见需求。最常用且安全的方法之一就是使用scp命令(secure copy),它基于SSH协议,能够在本地与远程主机之间安全地传输文件。
什么是scp命令?
scp 是 Secure Copy 的缩写,利用 SSH 加密通道进行文件传输,确保数据在传输过程中不被窃取或篡改。它支持本地到远程、远程到本地以及远程到远程之间的文件复制。
基本语法格式
scp 命令的基本结构如下:
scp [选项] 源路径 目标路径
其中源或目标可以是本地路径,也可以是远程主机的路径,远程路径格式为:用户名@主机地址:路径
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
常见使用场景与示例
1. 从本地复制文件到远程主机
将本地文件发送到远程服务器:
scp /home/user/file.txt user@192.168.1.100:/home/user/
这会把本地的 file.txt 复制到 IP 为 192.168.1.100 的远程主机上指定目录。
2. 从远程主机下载文件到本地
从远程获取文件:
scp user@192.168.1.100:/home/user/file.txt /home/local/
该命令将远程文件下载保存到本地 /home/local/ 目录下。
3. 在两个远程主机之间复制文件
通过本地中转,实现两台远程服务器间的文件传输:
scp user1@host1:/path/file user2@host2:/path/
注意:此操作需要你在两台远程主机上都有登录权限。
4. 复制整个目录(递归复制)
使用 -r 选项复制目录:
scp -r /home/user/myfolder user@192.168.1.100:/home/user/
-r 表示递归复制,用于传输整个文件夹及其内容。
5. 指定SSH端口
如果远程主机的SSH服务不是默认的22端口,使用 -P 指定端口号:
scp -P 2222 /home/user/file.txt user@192.168.1.100:/home/user/
注意:这里是大写的 P。
常用选项说明
- -r:递归复制,用于拷贝目录
- -P:指定远程主机的SSH端口
- -v:显示详细过程,调试用
- -C:启用压缩,提高传输速度(尤其适合文本文件)
- -q:静默模式,不显示传输进度
注意事项
使用 scp 时需确保目标主机已开启 SSH 服务,并允许用户登录。传输过程中会提示输入密码,若配置了 SSH 免密登录,则无需手动输入。
由于 scp 基于 SSH,因此安全性高,但不支持断点续传。对于大文件传输,可考虑使用 rsync over ssh 替代。
基本上就这些。掌握 scp 命令后,你就能轻松在 Linux 系统间安全高效地传输文件了。