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博客

相关推荐
byte轻骑兵14 小时前
【BlueZ 】蓝牙 SDAP 协议入门:BlueZ 中设备服务发现的基础逻辑
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙
mounter62514 小时前
GCCRS 突破与 Rust 入核:Linux 工具链的重大变革
linux·开发语言·rust·linux kernel·kernel
lxw202302711616 小时前
k8s安装部署(利用ansible)
linux·kubernetes·ansible
爱和冰阔落16 小时前
【Linux】Ctrl+C 到底做了什么?从键盘、kill 到 alarm,一次讲清信号的产生
linux·运维·c++·安卓
JavaPub-rodert17 小时前
Linux 下部署 MongoDB:从安装、配置到生产环境使用
linux·运维·mongodb
我不会插花弄玉17 小时前
11.Linux进程信号【由浅入深-Linux】
linux·进程·信号
Doraemomo18 小时前
Linux编程-socket网络编程之TCP
linux·网络·tcp/ip
Brilliantwxx18 小时前
【Linux】 进程(3)深度解析:从查看进程到进程状态
linux·服务器·网络·c++
我星期八休息18 小时前
Linux—五种IO模型与非阻塞IO
linux·运维·服务器·网络·数据库·网络协议
hweiyu0018 小时前
Linux命令:column
linux·运维·服务器