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上传目录需要类似的语法。正如我之前所说,区别在于您需要在命令末尾键入保存目录的路径。
这是因为 scp 命令被设计为尽可能与 cp Linux 命令相似。
在以下示例中,当前目录中名为 localdir 的目录被复制到远程主机的默认位置,即 kali 用户主目录。默认情况下,如果您在冒号后不指定补丁,则要复制的文件的默认路径是您认证的用户的主目录。
调用 SCP 后,添加 -r 标志以指定您正在传输目录而不是常规文件。然后,指定要发送的目录,后跟 <用户名@
正如您在以下从远程主机获取的屏幕截图中看到的,该目录是递归复制的:
使用 scp 下载和上传常规文件
如前所述,下载和上传常规文件几乎与目录相同,除了缺少 -r 标志(这是不必要的)。
要上传文件,请使用以下语法:
因此,要将名为 linuxfile 的文件上传到远程默认目录(称为 kali 用户主目录),我运行以下命令:
要下载文件,语法如下:
以下示例演示如何下载名为linuxfile的文件,将其存储在名为kali的远程用户的主目录中,并将其保存在本地用户的Downloads目录中。
如图所示,文件已正确传输。
使用 sftp 下载和上传文件和目录
使用 SFTP 下载和上传文件和目录就像使用 SCP 一样简单。
以下方法演示如何下载位于名为 dir 的远程子目录中的文件。该文件将本地保存在 /tmp/linux2 目录中。
下载目录是相同的过程。下面的示例显示如何将 dir 目录下载到用点指定的当前位置:
上传目录并不像 SCP 那么简单,而且语法也发生了变化。这是因为您需要连接到SFTP服务器并运行put命令来上传文件。
在下面的示例中,名为 linuxfile 的文件被上传到远程主机上的 dir 子目录:
上传目录还需要实现-r标志以进行递归传输。但是,上传时,必须将 -r 标志放置在 put 命令之后,如示例所示下面的目录linuxdir被上传到名为dir的远程子目录。
可以看到,目录已成功上传。这就是您如何使用 scp 命令或更推荐的 sftp 命令在 Linux 中下载和上传文件和目录。
结论
如您所见,使用 scp 命令远程复制 Linux 中的目录非常简单。 scp 命令被认为是在设备之间传输文件的最用户友好的方法,并且正如其名称“安全复制协议”所示,它曾经被认为是安全的。目前,scp 命令由于存在漏洞而已过时,并且不能取代 SFTP 和 RSYNC 等更安全的替代命令。 sftp 命令也可以在交互模式下使用,本教程中没有对此进行解释,但您可以在 https://linux教程/sftp_linux_command_line/ 上阅读它。所有支持 SCP 的系统都应该支持 SFTP,因此可用性不应该成为问题。在以后的教程中,将解释 RSYNC 替代方案,因此请继续关注此博客以获取更多 Linux 技巧和教程。
感谢您阅读这篇 SCP 教程,希望它对您有用。