
Linux scp 命令
Linux 中的
scp
登录后复制 命令主要用于在不同主机之间进行文件和目录的安全复制操作。
scp
登录后复制 是 secure copy 的缩写,它是基于 SSH 登录机制的一种远程文件拷贝 ,相比不加密的
rcp
登录后复制 更加安全可靠。
简介
在 Linux 中,
scp
登录后复制 是一个功能强大的命令行工具。它通过 SSH 协议实现数据传输,确保文件在传输过程中的安全性。
命令格式
<pre class="brush:php;toolbar:false;">scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 [...] [[user@]host2:]file2
登录后复制
简化形式如下:
<pre class="brush:php;toolbar:false;">scp [选项] [源文件] [目标路径]
登录后复制
-
[选项]
登录后复制 :控制
scp
登录后复制 的行为方式。
-
[源文件]
登录后复制 :需要复制的文件或目录路径。
-
[目标路径]
登录后复制 :文件或目录将被复制到的位置。
常用参数包括:
-
-r
登录后复制 :递归复制整个目录。
-
-P
登录后复制 :指定远程服务器使用的端口号(默认为 22)。
-
-P
登录后复制 :保留文件的时间戳及权限信息。
-
-v
登录后复制 :输出详细的调试信息。
-
-C
登录后复制 :启用压缩传输以提升速度。
完整参数说明:
- -1: 使用SSH协议版本1。
- -2: 使用SSH协议版本2。
- -4: 强制使用IPv4地址。
- -6: 强制使用IPv6地址。
- -B: 批处理模式,避免交互式提示。
- -C: 启用压缩传输。
- -p: 保留原始文件属性。
- -q: 不显示进度条。
- -r: 递归复制。
- -v: 显示详细执行过程。
- -c cipher: 使用指定加密算法。
- -F ssh_config: 指定替代的SSH配置文件。
- -i identity_file: 指定密钥文件。
- -l limit: 设置最大带宽限制。
- -o ssh_option: 设置SSH选项。
- -P port: 指定非标准端口。
- -S program: 指定用于加密连接的程序。
文件传输示例
将本地文件上传至远程主机
例如,将本地
example.txt
登录后复制 文件复制到远程服务器
/home/user/
登录后复制 路径下:
<pre class="brush:php;toolbar:false;">scp example.txt user@remote_host:/home/user/
登录后复制
下载远程文件到本地
从远程服务器获取
example.txt
登录后复制 文件并保存在当前目录:
<pre class="brush:php;toolbar:false;">scp user@remote_host:/home/user/example.txt .
登录后复制
复制整个目录
使用
-r
登录后复制 参数可以复制整个目录结构:
<pre class="brush:php;toolbar:false;">scp -r my_directory user@remote_host:/home/user/
登录后复制
自定义端口复制
当远程主机监听的是其他端口(如2222),则需添加
-P
登录后复制 参数:
超能文献是一款革命性的AI驱动医学文献搜索引擎。
14
<pre class="brush:php;toolbar:false;">scp -P 2222 example.txt user@remote_host:/home/user/
登录后复制
保留文件属性
若希望保留时间戳和权限信息,请使用
-P
登录后复制 选项:
<pre class="brush:php;toolbar:false;">scp -p example.txt user@remote_host:/home/user/
登录后复制
开启压缩加快传输
大文件或网络较差时,推荐加上
-C
登录后复制 来开启压缩功能:
<pre class="brush:php;toolbar:false;">scp -C large_file.zip user@remote_host:/home/user/
登录后复制
实际应用案例
本地 → 远程
命令模板如下:
<pre class="brush:php;toolbar:false;">scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip:remote_folder 或者 scp local_file remote_ip:remote_file
登录后复制
示例:scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3 scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
目录复制语法:
<pre class="brush:php;toolbar:false;">scp -r local_folder remote_username@remote_ip:remote_folder 或者 scp -r local_folder remote_ip:remote_folder
登录后复制
示例:
<pre class="brush:php;toolbar:false;">scp -r /home/space/music/ root@www.runoob.com:/home/root/others/ scp -r /home/space/music/ www.runoob.com:/home/root/others/登录后复制
远程 → 本地
只需交换前后参数位置即可完成下载操作:
<pre class="brush:php;toolbar:false;">scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3 scp -r www.runoob.com:/home/root/others/ /home/space/music/
登录后复制
特殊情况处理
如果防火墙限制了默认端口,则可使用
-P
登录后复制 指定具体端口号:
<pre class="brush:php;toolbar:false;">scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
登录后复制
同时请确认用户拥有读取远程文件的权限,否则操作会失败。
注意事项
- 必须具备对源文件和目标路径的访问权限。
- 若远程主机未启动 SSH 服务或配置错误,会导致
scp
登录后复制 无法正常运行。
- 如遇连接问题,可通过
-v
登录后复制 参数查看详细日志帮助排查。