Linux下如何使用SCP传输目录?Linux下如何使用SCP传输目录?Linux下如何使用SCP传输目录?Linux下如何使用SCP传输目录?
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux下如何使用SCP传输目录?

本教程介绍如何使用 Linux scp(安全复制协议)命令轻松传输目录。

尽管 Linux scp 命令已被弃用并被 SFTP 和 RSYNC 取代,但它的使用仍被广泛采用。即使在被弃用和替换之后,SCP 仍然可能是最常见的文件传输方法。然而,专业人士并不建议使用它。这就是为什么在 scp 下载和上传目录的说明之后,我添加了使用 sftp 命令执行相同操作的说明。

使用 scp 下载和上传目录

使用 scp 上传或获取目录与上传或下载常规文件类似。唯一的区别是您需要添加 -r 标志才能递归传输目录。

本教程的第一个示例具有您需要替换的以下特征:

  • 用于登录远程设备的用户名是kali。

  • 远程 IP 地址是168.1.100。

  • 要下载的目录名为 linuxdir。

您需要根据您的场景替换用户名、IP 地址和目录名称。

下面的示例使用 -r (递归)标志调用 scp 命令来指定我们要下载目录而不是常规文件。 scp 命令和 -r 标志后面是用户名@IP/主机。然后,后面跟着一个冒号和要下载的目录的路径。无论您要上传或下载目录,始终在命令末尾指定要保存目录或常规文件的位置。在这种情况下,linuxdir 目录将存储在/root 目录中。

语法是:

scp -r <Username>@<IP/Host>:<RemotePathToDir> <LocalPathToStore>

就我而言:

scp -r kali@192.168.1.100:linuxdir/ /root/

注意:本教程中使用的文件和目录是空的。

如您所见,文件已正确传输。

使用SCP上传目录需要类似的语法。正如我之前所说,区别在于您需要在命令末尾键入保存目录的路径。

这是因为 scp 命令被设计为尽可能与 cp Linux 命令相似。

在以下示例中,当前目录中名为 localdir 的目录被复制到远程主机的默认位置,即 kali 用户主目录。默认情况下,如果您在冒号后不指定补丁,则要复制的文件的默认路径是您认证的用户的主目录。

调用 SCP 后,添加 -r 标志以指定您正在传输目录而不是常规文件。然后,指定要发送的目录,后跟 <用户名@:<路径> ,如下例所示:

scp -r localdir kali@192.168.1.100:

正如您在以下从远程主机获取的屏幕截图中看到的,该目录是递归复制的:

使用 scp 下载和上传常规文件

如前所述,下载和上传常规文件几乎与目录相同,除了缺少 -r 标志(这是不必要的)。

要上传文件,请使用以下语法:

scp <FileName> <Username>@<IP/Host>:<RemotePathToDir>

因此,要将名为 linuxfile 的文件上传到远程默认目录(称为 kali 用户主目录),我运行以下命令:

scp linuxfile kali@192.168.1.100:

要下载文件,语法如下:

scp <Username>@<IP/Host>:<RemotePathToFile> <LocalPathToStore>

以下示例演示如何下载名为linuxfile的文件,将其存储在名为kali的远程用户的主目录中,并将其保存在本地用户的Downloads目录中。

scp kali@192.168.1.100:linuxfile ~/Downloads

如图所示,文件已正确传输。

使用 sftp 下载和上传文件和目录

使用 SFTP 下载和上传文件和目录就像使用 SCP 一样简单。

以下方法演示如何下载位于名为 dir 的远程子目录中的文件。该文件将本地保存在 /tmp/linux2 目录中。

sftp kali@192.168.1.107:dir/file /tmp/linux2

下载目录是相同的过程。下面的示例显示如何将 dir 目录下载到用点指定的当前位置:

sftp -r kali@192.168.1.107:dir/ .

上传目录并不像 SCP 那么简单,而且语法也发生了变化。这是因为您需要连接到SFTP服务器并运行put命令来上传文件。

在下面的示例中,名为 linuxfile 的文件被上传到远程主机上的 dir 子目录:

sftp kali@192.168.1.107:dir <<< $'put linuxfile'

上传目录还需要实现-r标志以进行递归传输。但是,上传时,必须将 -r 标志放置在 put 命令之后,如示例所示下面的目录linuxdir被上传到名为dir的远程子目录。

sftp kali@192.168.1.107:dir <<< $'put -r linuxdir'

可以看到,目录已成功上传。这就是您如何使用 scp 命令或更推荐的 sftp 命令在 Linux 中下载和上传文件和目录。

结论

如您所见,使用 scp 命令远程复制 Linux 中的目录非常简单。 scp 命令被认为是在设备之间传输文件的最用户友好的方法,并且正如其名称“安全复制协议”所示,它曾经被认为是安全的。目前,scp 命令由于存在漏洞而已过时,并且不能取代 SFTP 和 RSYNC 等更安全的替代命令。 sftp 命令也可以在交互模式下使用,本教程中没有对此进行解释,但您可以在 https://linux教程/sftp_linux_command_line/ 上阅读它。所有支持 SCP 的系统都应该支持 SFTP,因此可用性不应该成为问题。在以后的教程中,将解释 RSYNC 替代方案,因此请继续关注此博客以获取更多 Linux 技巧和教程。

感谢您阅读这篇 SCP 教程,希望它对您有用。

©2015-2025 艾丽卡 support@alaica.com