scp命令详解

本文详细介绍了SCP命令在Linux系统中的使用,包括其在SSH加密下的文件安全传输功能,以及与cp、rcp的区别,提供scp命令的语法格式、参数说明和示例,涵盖Linux内及跨平台(Linux与Windows)的文件复制操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、说明:

scp命令是secure copy的缩写,用于在linux下进行远程文件拷贝,类似的命令还有cp、rcp,不过cp只能在本机进行文件拷贝不支持跨服务器拷贝,rcp虽然支持远程文件拷贝,不过它不会对传输数据进行加密。

scp命令是用于通过ssh协议安全地将文件复制到远程系统和从远程系统复制文件到本地的命令。
使用ssh意味着它享有与ssh相同级别的数据加密,因此被认为是跨两个远程主机传输文件的安全方式。scp命令每一次复制都是完全复制,复制的效率不高,仅是用于第一次复制的时候使用,增量备份推荐使用rsync命令。

scp不仅可以在linux之间拷贝文件,还可以在windows和linux之间拷贝文件。

2、语法格式:

scp [可选参数] 本地主机文件 远程主机文件
scp [可选参数] 远程主机文件 本地主机文件

3、参数说明:

-C 压缩传输
-r 目录/递归复制整个目录
-P 大写P,指定传输的端口号
-p 小写p,传输后保留文件的原始属性
-q 不显示传输的进度条
-l 指定传输的时候占用的带宽。Kbit/s

4、示例(linux之间的复制):

拉取目录:scp -rp /etc/yum.repos.d root@192.168.255.129:/tmp/

[root@server-a ~]# scp -rp root@192.168.255.129:/etc/yum.repos.d ./test
root@192.168.255.129's password: 
redhat.repo                                              100%  358   229.0KB/s   00:00    
[root@server-a ~]# cd test/
[root@server-a test]# ls
test  test1  test2  yum.repos.d

推送目录:scp -rp /etc/yum.repos.d root@192.168.255.129:/root/test

[root@server-a test]# scp -rp /etc/yum.repos.d root@192.168.255.129:/root/test
root@192.168.255.129's password: 
rhce.repo                                                100%  136    53.3KB/s   00:00    
redhat.repo                                              100%  505   119.2KB/s   00:00    
163.repo                                                 100%  508   317.4KB/s   00:00
[root@localhost test]# ls
yum.repos.d

拉取文件:scp root@192.168.255.129:/root/test/ceshi_02 /root/test/

[root@server-a test]# scp  root@192.168.255.129:/root/test/ceshi_02 /root/test/
root@192.168.255.129's password: 
ceshi_02                                                 100%   98    77.9KB/s   00:00    
[root@server-a test]# ls
ceshi_01  ceshi_02  test  test1  test2  yum.repos.d
[root@server-a test]# cat ceshi_02
桃花坞里桃花庵,桃花庵下桃花仙。
桃花仙人种桃树,又摘桃花换酒钱。

推送文件:scp /root/test/ceshi_01 root@192.168.255.129:/root/test/

[root@server-a test]# scp /root/test/ceshi_01 root@192.168.255.129:/root/test/
root@192.168.255.129's password: 
ceshi_01                                                 100%   49    28.3KB/s   00:00    
[root@localhost test]# cat ceshi_01
年年岁岁花相似,岁岁年年人不同。

5、示例(windows和linux之间的复制):

注:在目录所在文件夹中按shift+右击,点击“在此处打开Powershell窗口”

推送目录:scp -rp .\test_ceshi root@192.168.255.130:/root/test

scp -rp .\test_ceshi root@192.168.255.130:/root/test
root@192.168.255.130's password:
ceshi.txt                             100%  158    51.9KB/s   00:00
test.txt                              100%   76    38.0KB/s   00:00
163.repo                              100%  508   250.2KB/s   00:00
redhat.repo                           100%  505   249.1KB/s   00:00
rhce.repo                             100%  136    53.6KB/s   00:00

[root@server-a test]# ls test_ceshi/
ceshi.txt  test.txt  yum.repos.d

拉取目录:scp -rp root@192.168.255.130:/etc/yum.repos.d ./

PS E:\test> scp -rp root@192.168.255.130:/etc/yum.repos.d ./
root@192.168.255.130's password:
rhce.repo                                                                             100%  136    67.0KB/s   00:00
redhat.repo                                                                           100%  505   338.0KB/s   00:00
163.repo                                                                              100%  508   517.9KB/s   00:00
PS E:\test> ls


    目录: E:\test


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          2024/1/9      1:33                yum.repos.d
-a----         2024/1/11      0:22            158 ceshi.txt
-a----         2024/1/11      0:10             76 test.txt


PS E:\test> cd .\yum.repos.d\
PS E:\test\yum.repos.d> ls


    目录: E:\test\yum.repos.d


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          2024/1/9      1:33            508 163.repo
-a----          2024/1/9      0:48            505 redhat.repo
-a----         2023/1/28     19:41            136 rhce.repo

推送文件:scp test.txt root@192.168.255.130:/root/test

PS E:\test> scp test.txt root@192.168.255.130:/root/test
root@192.168.255.130's password:
test.txt                                100%    76    29.8KB/s   00:00

[root@server-a test]# ls
ceshi_01  ceshi_02  test  test1  test2  test.txt  yum.repos.d
[root@server-a test]# cat test.txt 
君生我未生,我生君已老。
恨不生同时,日日与君好。

拉取文件:scp root@192.168.255.130:/root/test/ceshi.txt ./

PS E:\test> scp root@192.168.255.130:/root/test/ceshi.txt ./
root@192.168.255.130's password:
ceshi.txt                                     100%  158    77.9KB/s   00:00
PS E:\test> cat .\ceshi.txt
我住长江头,君住长江尾。日日思君不见君,共饮长江水。
此水几时休,此恨何时已。只愿君心似我心,不负相思意。

### SCP命令使用教程 SCP(Secure Copy Protocol)是基于SSH协议的文件传输工具,用于在本地计算机和远程计算机之间安全地复制文件[^4]。以下是SCP命令的详细使用方法、示例及语法。 #### 基本语法 SCP命令的基本语法如下: ```bash scp [options] source destination ``` - `source`:源文件路径。 - `destination`:目标文件路径。 - `[options]`:可选参数,用于指定端口、递归复制等操作[^5]。 #### 参数说明 以下是一些常用的SCP命令参数及其功能: - `-P`:指定远程主机的端口号[^5]。 - `-r`:递归复制目录及其内容[^5]。 - `-p`:保留文件的修改时间和权限[^5]。 - `-q`:安静模式,不显示传输进度。 - `-C`:启用压缩数据传输,减少网络带宽使用。 #### 示例代码 1. **将本地文件复制到远程服务器** 将本地文件`file.txt`复制到远程服务器的`/home/user/`目录下: ```bash scp file.txt user@remote-server:/home/user/ ``` 2. **从远程服务器下载文件到本地** 从远程服务器下载`/path/to/file.txt`到本地当前目录: ```bash scp user@remote-server:/path/to/file.txt . ``` 3. **指定非默认端口进行文件传输** 使用端口`29022`将本地文件`file.txt`复制到远程服务器: ```bash scp -P 29022 file.txt user@remote-server:./ ``` 4. **递归复制整个目录** 将本地目录`mydir`递归复制到远程服务器的`/home/user/`目录下: ```bash scp -r mydir user@remote-server:/home/user/ ``` 5. **压缩传输以减少带宽使用** 使用压缩选项`-C`将本地文件`file.txt`复制到远程服务器: ```bash scp -C file.txt user@remote-server:/home/user/ ``` 6. **保留文件的时间戳和权限** 复制文件时保留其修改时间和权限: ```bash scp -p file.txt user@remote-server:/home/user/ ``` #### 注意事项 - SCP命令使用SSH协议进行加密传输,因此比未加密的FTP更安全[^4]。 - 相较于`rsync`,SCP虽然速度稍慢,但不会显著增加系统资源消耗[^2]。 - 如果需要传输大量小文件,建议考虑硬盘I/O的影响[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值