需要在Windows和CentOS之间互传文件,使用的是Windows上的XShell-sftp工具。

sftp登录

使用命令sftp user@ip再根据提示输入password即可。

sftp交互式环境

登录之后可以像ssh一样使用远端环境,本地环境只需在前面一个l即可,例如:显示当前路径命令为pwd,则显示本地当前路径命令为lpwd

传输文件

  1. put 上传文件,文件名后不加参数默认上传至远端当前目录。
  2. get 下载文件,文件名后不加参数默认下载至本地当前目录。

传输文件夹

理论上来讲在put或者get后面加-r应该就可以实现文件夹的上传下载,但是不知道为什么老是报:

sftp:/root> put -r C:/folder
sftp: cannot open C:/folder to read

Google也没有找到比较好的办法,试过了在远端创建上传的同名文件夹,并且chmod 777 folder设置目录权限之后还是不能成功,最后想是不是Windows和Linux传输协议不同的问题(虽然XShell是模拟的Linux的环境,但模拟的始终是模拟的,可能底层通信有所不同),于是用VMWare创建了一个Linux虚拟机进行相同的操作后成功。