使用 PSCP 在 Windows 和 Linux 之间传输文件和文件夹

开源 PSCP 实用程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。
3 位读者喜欢这篇文章。
Computer screen with files or windows open

Opensource.com

您是否正在寻找一种方法来快速地在 Windows 计算机和 Linux 计算机之间来回传输文件?开源 PSCP 实用程序可以轻松传输文件和文件夹,当然它是开源的。

在 Windows 中设置 PATH

了解如何在 Windows 中设置命令路径可以更轻松地使用像 PSCP 这样方便的实用程序。如果您不熟悉该过程,请阅读如何在 Windows 上设置 PATH

使用 PSCP

PSCP(PuTTY Secure Copy Protocol)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。

  1. 从其网站下载 pscp.exe

  2. pscp.exe 移动到 PATH 中的文件夹(例如,如果您按照 Opensource.com 上的 PATH 教程,则移动到 Desktop\App)。如果您尚未为自己设置 PATH 变量,则可以交替地将 pscp.exe 移动到保存您要传输的文件的文件夹中。

  3. 使用 Windows 任务栏中的搜索栏在您的 Windows 计算机上打开 Powershell(在搜索栏中键入“powershell”)。

  4. 键入 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 路径。

Image of a file manager.

(Paul Laubscher,CC BY-SA 4.0)

远程复制

借助开源 pscp 命令的强大功能,您可以访问家中的任何计算机以及您拥有帐户的服务器,甚至移动和边缘设备

标签
I am passioned about Opensource and Linux and believe in teaching everyone about Opensource. I am a Experienced System Engineer with a demonstrated history of working in the information technology and services industry.
我热衷于开源和 Linux,并相信向所有人教授开源知识。我是一位经验丰富的系统工程师,在信息技术和服务行业拥有良好的工作历史。

评论已关闭。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.