新闻资讯

scp 命令用于 linux 和 windows 之间传送复制文件

远程 | 2025-02-26

在日常的跨系统文件交互场景中,scp 命令为 Linux 和 Windows 系统之间传送复制文件提供了高效且安全的解决方案。无论是从 Windows 向 Linux 服务器传输数据,还是反向操作,scp 命令都能轻松胜任。下面详细介绍 scp 命令在这两个系统间的使用方法。

环境准备

1、Windows 端准备:Windows 系统默认并未集成 scp 命令,需借助第三方工具来实现。PuTTY 工具套件是一个不错的选择,其中的 pscp.exe 工具等同于 scp 命令在 Windows 环境下的实现。从官方网站或可靠的下载渠道获取 PuTTY 工具套件,解压后,将包含 pscp.exe 的目录添加到系统的环境变量中。具体操作是在 “此电脑” 上右键点击,选择 “属性”,进入 “高级系统设置”,在 “高级” 选项卡中点击 “环境变量”,在 “系统变量” 中找到 “Path” 变量,点击 “编辑”,然后将 pscp.exe 所在目录添加进去,确保在命令提示符中能直接调用 pscp 命令。
2、Linux 端准备:大多数 Linux 发行版默认已安装 OpenSSH,其中包含了 scp 命令。若未安装,可通过系统的包管理器进行安装。例如,Debian 或 Ubuntu 系统中,在终端输入 “apt - get install openssh - client”,按提示完成安装;CentOS 系统则使用 “yum install openssh - client” 命令进行安装。

基本语法与使用

1、从 Windows 复制文件到 Linux:在 Windows 的命令提示符中,使用 pscp 命令进行文件传输。例如,要将本地 C:\Users\test\Desktop\test.txt 文件复制到 Linux 服务器 192.168.1.100 的 /home/user/ 目录下,命令如下:
pscp C:\Users\test\Desktop\test.txt user@192.168.1.100:/home/user/
命令执行后,系统会提示输入 Linux 服务器上 user 用户的密码,输入正确密码后,文件开始复制。注意,这里的 user 是 Linux 服务器上的用户名,需根据实际情况替换。
2、从 Linux 复制文件到 Windows:在 Linux 的终端中,使用 scp 命令完成反向操作。比如,将 Linux 服务器上 /home/user/test.txt 文件复制到 Windows 本地 C:\Users\test\Downloads\ 目录下,命令如下:
scp user@192.168.1.100:/home/user/test.txt C:\Users\test\Downloads\
同样,执行命令后需输入 Linux 服务器上 user 用户的密码,验证通过后开始复制。

目录复制

1、从 Windows 复制目录到 Linux:若要传输整个目录,需使用 - r 参数,它表示递归复制,即复制目录及其子目录和文件。例如,将本地 C:\Users\test\Desktop\testdir 目录复制到 Linux 服务器 192.168.1.100 的 /home/user/ 目录下,命令如下:
pscp -r C:\Users\test\Desktop\testdir user@192.168.1.100:/home/user/
2、从 Linux 复制目录到 Windows:在 Linux 终端中,使用 scp -r 命令进行操作。例如,将 Linux 服务器上 /home/user/testdir 目录复制到 Windows 本地 C:\Users\test\Downloads\ 目录下,命令如下:
scp -r user@192.168.1.100:/home/user/testdir C:\Users\test\Downloads\

特殊情况处理

1、指定端口:如果 Linux 服务器的 SSH 服务使用了非默认端口 22,在命令中需指定端口号。假设端口号为 2222,从 Windows 复制文件到 Linux 的命令如下:
pscp -P 2222 C:\Users\test\Desktop\test.txt user@192.168.1.100:/home/user/
从 Linux 复制文件到 Windows 时,同样在 scp 命令中添加 - P 参数指定端口,如:
scp -P 2222 user@192.168.1.100:/home/user/test.txt C:\Users\test\Downloads\
2、文件权限与属性:scp 命令在复制文件时,默认会保留文件的权限和时间戳等基本属性。若要修改文件权限,可在复制完成后,在 Linux 系统中使用 chmod 命令进行调整;在 Windows 系统中,可通过文件属性设置来更改相关权限。
在使用 scp 命令进行 Linux 和 Windows 之间的文件传输时,要确保网络连接稳定,用户名、密码、IP 地址和端口号等信息准确无误,以保证文件传输的顺利进行。


拓展阅读:

1. scp 命令传输文件时提示权限不足怎么办:在 Linux 端,检查文件或目录的所有者和权限,使用 chown 和 chmod 命令修改;在 Windows 端,确保操作的用户具有相应的读写权限。
2. 除了 scp 命令,还有哪些工具可以实现 Linux 和 Windows 之间的文件传输:还可以使用 WinSCP、FileZilla 等工具,它们提供图形化界面,操作更直观,支持 SFTP、FTP 等多种协议。
3. 如何在 scp 命令中实现免密码登录:在 Linux 系统中,使用 ssh - keygen 生成密钥对,将公钥复制到远程服务器的 authorized_keys 文件中,即可实现免密码登录。在 Windows 系统中,使用 PuTTYgen 工具生成密钥对,将私钥导入 PuTTY,公钥上传到远程服务器,实现免密码登录。