您是否正在寻找一种方法来快速地在 Windows 计算机和 Linux 计算机之间来回传输文件?开源 PSCP 实用程序可以轻松传输文件和文件夹,当然它是开源的。
在 Windows 中设置 PATH
了解如何在 Windows 中设置命令路径可以更轻松地使用像 PSCP 这样方便的实用程序。如果您不熟悉该过程,请阅读如何在 Windows 上设置 PATH。
使用 PSCP
PSCP(PuTTY Secure Copy Protocol)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。
-
从其网站下载
pscp.exe
。 -
将
pscp.exe
移动到 PATH 中的文件夹(例如,如果您按照 Opensource.com 上的 PATH 教程,则移动到Desktop\App
)。如果您尚未为自己设置 PATH 变量,则可以交替地将pscp.exe
移动到保存您要传输的文件的文件夹中。 -
使用 Windows 任务栏中的搜索栏在您的 Windows 计算机上打开 Powershell(在搜索栏中键入“powershell”)。
-
键入
pscp –version
以确认您的计算机可以找到该命令。
IP 地址
在进行传输之前,您必须知道目标计算机的 IP 地址或完全限定域名。假设它是您同一网络上的计算机,并且您没有运行 DNS 服务器来解析计算机名称,则可以使用 Linux 机器上的 ip
命令找到目标 IP 地址
[linux]$ ip addr show | grep 'inet '
inet 127.0.0.1/8 scope host lo
inet 192.168.1.23/24 brd 10.0.1.255 scope global noprefixroute eth0
在所有情况下,127.0.0.1 都是环回地址,计算机仅使用它与自身对话,因此在本例中,正确的地址是 192.168.1.23。在您的系统中,IP 地址可能有所不同。如果您不确定哪个是哪个,您可以依次尝试每个地址,直到找到正确的地址(然后将其写在某个地方!)
或者,您可以查看路由器的设置,其中列出了通过 DHCP 分配的所有地址。
防火墙和服务器
pscp
命令使用 OpenSSH 协议,因此您的 Linux 计算机必须运行 OpenSSH 服务器软件,并且其防火墙必须允许 SSH 流量。
如果您不确定您的 Linux 机器是否正在运行 SSH,请在 Linux 机器上运行此命令
[linux]$ sudo systemctl enable --now sshd
为确保您的防火墙允许 SSH 流量,请运行此命令
[linux]$ sudo firewall-cmd --add-service ssh --permanent
有关 Linux 上防火墙的更多信息,请阅读使用防火墙使 Linux 更强大。
传输文件
在本示例中,我有一个名为 pscp-test.txt
的文件,我想将其从我的 Windows 计算机上的 C:\Users\paul\Documents
传输到我的目标 Linux 计算机主目录 /_home_/paul
。
现在您有了 pscp
命令和目标地址,您就可以传输测试文件 pscp-test.txt
了。打开 Powershell 并使用 dir
命令更改到 Documents
文件夹,样本文件位于该文件夹中
PS> dir %USERPROFILE%\Documents\
现在执行传输
PS> pscp pscp-test.txt paul@192.168.1.23:/home/paul
| Password:
End of keyboard-interactive prompts from server
pscp-test.txt | 0 kb | 0.0 kB/s | ETA: 00:00:00 | 100%
以下是语法,逐字逐句
-
pscp
:用于传输文件的命令。 -
pscp-test.txt
是您要从 Windows 传输的文件的名称。 -
paul@192.168.1.23
是我在 Linux 计算机上的用户名,以及 Linux 计算机的 IP 地址。您必须将其替换为您自己的用户和目标信息。请注意,pscp
需要目标计算机上的目标路径,IP 地址末尾的:/home/paul
指定我要将文件复制到我的主文件夹。
在您向 Linux 计算机进行身份验证后,pscp-test.txt
文件将被传输到 Linux 计算机。
[ 相关阅读 在 Linux 和 Windows 计算机之间共享文件 ]
验证传输
在您的 Linux 计算机上,打开终端并使用 ls
命令验证文件 pscp-test.txt
是否出现在您的主目录中。
[linux]$ ls
Documents
Downloads
Music
Pictures
pscp-test.txt
从 Linux 系统复制文件
您不仅限于将文件复制到 Linux 系统。借助 pscp
,您还可以将文件从 Linux 复制到 Windows。语法相同,只是方向相反
PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt
以下是语法
-
pscp
:用于传输文件的命令。 -
paul@192.168.1.23:/home/paul/pscp-test.txt
是我在 Linux 计算机上的用户名、Linux 计算机的 IP 地址以及我要复制的文件的路径。 -
%USERPROFILE%\Documents
是我要在 Windows 计算机上保存文件的位置。请注意,在将文件复制回我的 Windows 计算机时,我可以给它一个新名称,例如pscp-win.txt
,以将其与原始文件区分开来。当然,您不必重命名文件,但对于本演示而言,这是一个有用的快捷方式。
打开您的文件管理器以验证 pscp-win.txt
文件是否已从 Linux 计算机复制到 Windows C:\Users\paul\Documents
路径。

(Paul Laubscher,CC BY-SA 4.0)
远程复制
借助开源 pscp
命令的强大功能,您可以访问家中的任何计算机以及您拥有帐户的服务器,甚至移动和边缘设备。
评论已关闭。