使用 PSCP 将文件和文件夹从 Windows 传输到 Linux | Linux 中国
开源的 PSCP 程序可以轻松地在 Windows 和 Linux 计算机之间传输文件和文件夹。
你是否正在寻找一种将文件从 Windows 计算机快速传输到 Linux 计算机并再次传输回来的方法?开源的 PSCP 程序可以轻松传输文件和文件夹,当然它是开源的。
在 Windows 中设置 PATH
了解如何在 Windows 中设置命令路径可以更轻松地使用 PSCP 等方便的程序。如果你不熟悉该过程,请阅读 如何在 Windows 上设置 PATH。
使用 PSCP
PSCP(PuTTY 安全复制协议)是一个命令行工具,用于将文件和文件夹从 Windows 计算机传输到 Linux 计算机。
pscp.exe
。pscp.exe
移动到 PATH
中的文件夹(例如,如果你按照 Opensource.com 上的 PATH 教程进行操作,则为 Desktop\App
)。如果你没有设置 PATH
变量,你也可以将 pscp.exe
移动到保存要传输的文件的文件夹中。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-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 传输的文件的名称。[email protected]
是我在 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 系统复制文件
你不仅限于将文件复制到 Linux 系统。使用 pscp
,你还可以将文件从 Linux 复制到 Windows。语法是一样的,只是反过来:
PS> pscp paul@192.168.1.23:/home/paul/pscp-test.txt %USERPROFILE%\Documents\pscp-win.txt
这是语法:
pscp
:用于传输文件的命令。[email protected]:/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.
远程复制
借助开源 pscp
命令的强大功能,你可以访问家中的任何计算机、拥有帐户的服务器,甚至是移动设备和 边缘设备。
via: https://opensource.com/article/22/10/transfer-files-windows-linux-pscp
微信扫码关注该文公众号作者