使用 Linux 命令行远程复制文件
下面是几种通过 SSH 在远程系统和本地机器之间传输文件的方法。
情况是这样的。 您可以通过 SSH 连接到一个远程 Linux 系统,然后您会发现自己需要将一些文件从远程服务器复制到本地系统。
怎么做?您可以通过以下方式使用老式的 scp
命令:
如果要将某些文件从本地系统复制到远程系统:
注意,在远程服务器详细信息和路径之间要用冒号(:)分隔。
您也可以在这里使用 rsync
命令。 让我在本教程中详细介绍这些步骤。
✋ 本教程假定您可以使用 SSH 连接到远程系统。 您需要知道远程用户的密码,并且远程用户应具有对要复制文件的文件夹的读/写访问权限。
我的环境设置包括一个用作远程服务器的树莓派。 我可以通过我的 TUXEDO 笔记本电脑 以 SSH 方式 轻松连接到树莓派。
scp 命令的使用
scp
命令 是安全拷贝(secure copy)的简称,它使用 SSH 连接在远程系统之间传输文件。 我喜欢它,因为它的语法与 cp
命令 相似。
💡 我打开了一个单独的终端会话,通过 SSH 连接到远程服务器。这样我就能查看和复制远程服务器上的文件位置。 这一点很重要,因为通过
SCP
无法使用 TAB 自动补全。
将文件从本地计算机复制到远程服务器
我在 Documents
目录中有一个 sample.txt
文件。 我想把这个文件发送到远程服务器的 Template
目录中。
您还记得语法吗?
它会要求输入密码,即远程服务器上用户的密码。
让我们在这个例子中使用它:
以下是该命令的输出结果:
我使用 ~
符号表示用户的主目录,因为它比 /home/username
短。
您可以通过 SSH 连接到远程服务器验证传输结果。 这也是我一直保持一个额外终端会话的原因。
复制多个文件
使用方法与 cp
命令相同:
将文件夹复制到远程系统
像 cp
命令一样,使用递归选项 -r
:
将文件从远程服务器复制到本地计算机
现在让我们反过来。 让我们把远程服务器上的文件复制到本地机器上。 语法如下
比方说,我在树莓派上有一些截图,我想把它们放到我的笔记本电脑上。
我将远程文件复制到了当前工作目录。
复制多个文件?
复制多个文件意味着要提供所有文件的完整路径(包括用户名和 IP 地址),这就变得很棘手。 如果可以使用通配符匹配,请使用通配符匹配,否则,请将所需文件复制到一个新的临时目录中,然后将该临时目录复制到本地系统。
rsync 命令的使用
rsync
是另一个功能强大的命令,能让您在远程系统之间复制文件。 与 scp
不同,rsync
不仅仅是一个简单的传输命令,它还有更强大的功能,与 cron 作业结合使用时,它将成为一个很好的备份工具。
在这里,我只向您展示如何使用它进行简单的文件传输。
将文件/目录从本地复制到远程位置
要将文件从本地系统复制到远程服务器,可以使用 rsync
命令:
举个例子,我想把本地目录 NewDir
复制到远程树莓派的 Documents
目录:
将文件/目录从远程复制到本地
要将远程计算机上的文件或目录复制到本地计算机上,可按这种方式使用 rsync
:
比方说,我想把 rpdiags.txt
从远程系统的主目录复制到本地系统的当前工作目录:
结论
如果已配置 SFTP 服务器,则可使用 FileZilla 等图形用户界面工具。
在 Ubuntu 上安装并使用 FileZilla 连接 SFTP 服务器
我更喜欢使用 scp 命令通过 SSH 连接快速传输文件。当我需要对包含大量文件的文件夹进行备份时,我会使用 rsync。 更多信息请见其他文章。 祝您愉快 😄
via: https://fosscope.com/20240730-copy-files-between-remote-systems-in-the-linux-command-line
source: https://itsfoss.com/ssh-copy-remote-local/
选题:Churnie HXCN
译者:Churnie HXCN
校对:Cubik65536
本文由 FOSScope翻译组 原创编译,开源观察 荣誉推出