Linux scp命令

scp(secure copy)命令是Linux和Unix系统下用于通过SSH协议安全地复制文件和目录的工具。它提供了一种方便的方式来在本地和远程系统之间传输数据,同时保持了数据传输的安全性和完整性。

基本语法
bash 复制代码
scp [选项] [源路径] [目标路径]
  • 源路径 :可以是本地文件或目录的路径,也可以是远程主机上的文件或目录的路径(格式为用户名@主机地址**:**绝对路径)。
  • 目标路径 :与源路径相对应,表示数据要复制到的位置,同样可以是本地或远程的路径。
常用选项
  • -r **:**递归复制整个目录及其子目录。
  • -P **(注意是大写):**指定SSH连接使用的端口号(默认是22)。
  • -p **(注意是小写):**保留原文件的修改时间、访问时间和权限。注意,这个选项并不表示通过加密传输(尽管scp本身是通过SSH加密的)。
  • -C **:**启用压缩,可以加快传输速度(特别是当文件较大且网络速度较慢时)。
  • -i **:**指定私钥文件的路径,用于SSH身份验证。
  • -v **:**详细模式,显示传输过程中的详细信息。
  • -q **:**安静模式,不显示传输进度条和警告信息。
  • -l **:**限制scp传输时使用的带宽(以Kbit/s为单位)。
举例

1)从远端服务器拷贝文件到本地

2)从本地拷贝文件到远端服务器

bash 复制代码
# 3)拷贝文件夹
scp -r /path/to/local/directory username@remotehost:/path/to/remote/directory
# 递归地将本地的/path/to/local/directory目录及其子目录和文件复制到远程主机username@remotehost的/path/to/remote/directory目录下。

# 4)指定SSH端口
scp -P 2222 /path/to/local/file username@remotehost:/path/to/remote/directory
# 如果远程主机的SSH服务不在默认的22端口上运行,可以使用-P选项指定端口号。

# 5)保留文件属性
scp -p /path/to/local/file username@remotehost:/path/to/remote/directory
# 在复制文件时,保留原文件的修改时间、访问时间和权限

# 6)使用私钥文件
scp -i /path/to/private_key /path/to/local/file username@remotehost:/path/to/remote/directory
# 如果SSH连接需要私钥文件进行身份验证,可以使用-i选项指定私钥文件的路径。
和复制粘贴方式比较, SCP方式的优势
  • 安全性和完整性 :SCP使用SSH(Secure Shell)协议进行加密和认证,确保传输过程中的数据安全和完整性。这是跨平台复制粘贴通常无法提供的安全级别。

使用场景:windows和linnux之间跨平台拷贝二进制文件时,直接复制粘贴容易破坏二进制文件的完整性,一般采用scp方式传输。

  • 可控性 :SCP提供了更多的选项和参数,允许用户精细控制文件传输过程,如限制带宽、递归复制目录等。
  • 高效性 :对于大量文件或大型文件的传输,SCP通常比基于剪贴板的传输方式更高效。SCP还支持断点续传,这意味着如果传输过程中发生中断,可以从中断的地方继续传输。
  • 跨网络 :SCP允许用户在不同网络之间的计算机上传输文件,而不仅仅局限于同一局域网或支持剪贴板同步的设备之间。
拓展:windows平台传输工具pscp.exe

windows系统和Centos下linux系统文件的互相拷贝_centos8怎么复制文件到windows中-CSDN博客

相关推荐
二十雨辰1 小时前
[linux]docker基础
linux·运维·docker
饮浊酒2 小时前
Linux操作系统 ------(3.文本编译器Vim)
linux·vim
lihuhelihu2 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
矛取矛求2 小时前
Linux系统性能调优技巧
linux
One_Blanks2 小时前
渗透测试-Linux基础(1)
linux·运维·安全
Perishell2 小时前
无人机避障——大疆与Airsim中的角速度信息订阅获取
linux·动态规划·无人机
爱吃喵的鲤鱼2 小时前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
dessler2 小时前
Linux系统-ubuntu系统安装
linux·运维·云计算
荒Huang3 小时前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
hjjdebug5 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal