Linux 中的 scp 命令及示例 - Linux 命令行教程
Linux 中的 scp 命令用于将文件和目录复制到远程系统或从远程系统复制文件和目录。它的工作方式与 cp 命令非常相似,不同之处在于它将文件复制到本地网络或互联网上某个位置的其他系统或从其他系统复制文件。
scp 命令通过 SSH 协议工作。换句话说,两个系统都必须设置 SSH 才能使用 scp 命令。您可能已经知道,SSH 协议在您的本地系统和另一个系统之间创建安全且加密的隧道,这意味着您使用 scp 命令复制的文件不会被拦截。
你知道吗?
SCP 命令基于 BSD RCP 协议。该协议用于本地网络或互联网上连接的主机之间的文件传输。实际的数据传输和用户身份验证是通过 Secure Shell (SSH) 完成的。这反过来又为所有数据传输提供端到端加密。
正如您可以想象的那样,能够将文件复制到远程系统或从远程系统粘贴文件是非常有用的。然而,它并不是 Linux 中唯一具有此功能的命令。对于复杂的文件传输或完整备份,建议您使用类似于 rsync 命令的命令。 scp 命令更适合快速、简单地传输一个或几个文件。
在本指南中,您将通过示例了解如何在 Linux 中使用 scp 命令。请按照以下步骤了解可与此命令一起使用的各种选项。
在本教程中您将学习:
如何在 Linux 上使用 scp 命令
Linux中使用scp命令将文件复制到远程系统
Linux 中的 scp 命令基本示例
让我们看一个简单的示例,其中使用 scp 命令将名为
file.txt
的本地文件复制到 IP 地址为10.1.1.20
的远程服务器代码>.$ scp file.txt linuxconfig@10.1.1.20:/home/linuxconfig
如果我们希望原始文件在远程系统上采用新的文件名,我们可以在命令中指定。
$ scp file.txt linuxconfig@10.1.1.20:/home/linuxconfig/newname.txt
要将目录而不是文件复制到远程系统,您需要在 scp 命令中使用
-r
选项。$ scp -r Downloads linuxconfig@10.1.1.20:/home/linuxconfig/
到目前为止,我们已经了解了如何将文件和目录从本地系统复制到远程系统。但是,反过来呢?如果我们想将远程文件复制到本地系统中,我们所需要做的就是颠倒命令的顺序,如下所示。
$ scp linuxconfig@10.1.1.20:/home/linuxconfig/file.txt /path/to/destination
注意
您始终可以使用 man 命令来阅读有关 scp 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。
高级用法
在下面的部分中,我们收集了一些可以与 Linux 中的 scp 命令一起使用的更高级选项。毫无疑问,scp 就 Linux 命令而言非常简单。然而,下面的一些选项并不常用,但仍然占据一定的份额并且很容易了解。
Linux 高级示例中的 scp 命令
如果远程系统未在默认端口 22 上运行 SSH,则您需要在 scp 命令中使用
-P
选项指定另一个端口号。在此示例中,远程系统在端口 2210 上运行 SSH。$ scp -P 2210 file.txt linuxconfig@10.1.1.20:/home/linuxconfig
有趣的是,您还可以将文件从一个远程系统复制到另一远程系统。只需在开始传输之前准备好向两台服务器进行身份验证即可。
$ scp user1@host1:/files/file.txt user2@host2:/files
结束语
在本指南中,我们了解了 scp 命令。这是一个很好的工具,可以了解本地系统和远程服务器之间何时已建立 SSH 连接。这可能是快速将文件复制到远程服务器或从远程服务器复制文件的最简单、轻松的方法之一。为了让事情变得更加方便,您可以随时设置 RSA 密钥身份验证,这将完全绕过密码提示,同时还提高了安全性。