远程服务器的文件上传与下载的两个命令 scp 和 sftp。

实现远程服务器的文件上传与下载。通常而言,我们会选择 ftp、scp 以及 sftp 进行文件传输。但 ftp 基于 TCP 来传输文件,明文传输用户信息和数据,存在一定的安全风险。所以我们更倾向于选择基于 SSH 来加密传输的 scp 和 sftp,但结合速度、安全性和功能的要求,这两种协议各有优劣。接下来,我们做个简单比较,也许会让你的日常选择更加高效。

什么是 scp?

scp 是一种基于 SSH 的协议,主要用在网络上的主机之间提供文件传输。使用 scp,我们可以在主机之间快速传输文件以及基本文件属性,例如访问权限和通过 FTP 无法可用的时间戳。scp 协议使用 RCP 传输文件和 SSH 以提供身份验证和加密。

如何通过 scp 进行文件上传与下载?

先介绍我们最常见的,在 linux 中可以使用 scp 进行文件上传和下载。

  • 文件上传:scp localfile user@host:/dirpath

即 SCP 文件路径远程主机用户名@ip:/存放文件的路径,比如 scp hello.txt user@ip:/home/user/dirpath

  • 从本地上传目录到远程主机 : scp -r localdir user@host:/dirpath

即 scp -r 本地目录路径远程主机用户名@ip:/存放文件路径

  • 从远程主机下载东西到本地电脑拷贝文件命令 scp user@host:/path/file /localpath

即 scp用户名@IP:/文件路径 /本地文件路径

  • 如果拷目录就 scp -r user@host:/dirpath /localpath

即 scp -r 用户名@IP:/目录路径 /本地文件路径

什么是 sftp?

sftp 同样是基于 SSH 的文件传输协议,但功能更强大。相较于 scp,更像是远程文件管理协议,sftp 允许对远程文件(查看目录,删除文件和目录等)进行一系列操作。

如何通过 sftp 进行文件上传与下载

而 sftp 下,我们可以通过 linux 命令行,使用 SFTP 命令进行直接操作:

  • sftp 用户名@ip;
  • 回车提示输入密码,进入提示符 sftp>;
  • 在 sftp 中 get 表示下载,put 表示上传;
  • sftp> get 远程主机下文件的路径、将文件保存到本地电脑的路径;
  • sftp> put 本地文件的路径、将文件版保存到远程主机的路径;
  • pwd 命令可以帮您查询远程主机的当前路径。查询本机当前工作目录 lpwd.,改变路径可以用 cd ,改变本机路径可以用 lcd;ls rm rmdir mkdir 这些命令都可以使用。同理调用本机都是加 l , 即 lls lrm。

到底什么时候应该使用 scp 或 sftp?

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java