3

使用 PSCP 将文件和文件夹从 Windows 传输到 Linux

 1 year ago
source link: https://www.51cto.com/article/722427.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
0990a4c42911543772f123bf470fb4513e05f5.jpg

你是否正在寻找一种将文件从 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​​ 移动到保存要传输的文件的文件夹中。
  • 使用 Windows 任务栏中的搜索栏在 Windows 计算机上打开 Powershell(在搜索栏中输入​​powershell​​。)
  • 输入​​pscp -version​​ 以确认你的计算机可以找到该命令。

在进行传输之前,你必须知道目标计算机的 IP 地址或完全限定域名。假设它是同一网络上的计算机,并且你没有运行 DNS 服务器来解析计算机名称,你可以在 Linux 机器上使用 ​​ip​​ 命令找到目标 IP 地址:

[linux]$ ip addr show |grep 'inet 'inet 127.0.0.1/8 scope host loinet 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 [email protected]:/home/paul| Password:End of keyboard-interactive prompts from serverpscp-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]$ lsDocumentsDownloadsMusicPicturespscp-test.txt

从 Linux 系统复制文件

你不仅限于将文件复制到 Linux 系统。使用 ​​pscp​​,你还可以将文件从 Linux 复制到 Windows。语法是一样的,只是反过来:

PS> pscp [email protected]:/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​​ 下。

b98c13e475aaaaf13c0733dd3f7d99437b7bfe.jpg

Image of a file manager.

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK