
开源的 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。
你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法?开源的 PSCP 程序可以轻松传输文件和文件夹,当然它是开源的。
了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程,请阅读 如何在 Windows 上设置 PATH。
PSCP(PuTTY 安全复制协议)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。
pscp.exe。pscp.exe 移动到 PATH 中的文件夹(例如,如果你按照 Opensource.com 上的 PATH 教程进行操作,则为 Desktop\App)。如果你没有设置 PATH 变量,你也可以将 pscp.exe 移动到保存要传输的文件的文件夹中。powershell。)pscp -version 以确认你的计算机可以找到该命令。在进行传输之前,你必须知道目标计算机的 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-servicessh --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 计算机上,打开终端并使用 ls 命令验证文件 pscp-test.txt 是否出现在你的主目录中。
[linux]$ ls
Documents
Downloads
Music
Pictures
pscp-test.txt
你不仅限于将文件复制到 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 下。

借助开源 pscp 命令的强大功能,你可以访问家中的任何计算机、拥有帐户的服务器,甚至是移动设备和 边缘设备。
via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp