本博客讨论的是如何在Windows与Linux之间传输文件。
关于实现Windows开发+Linux部署,目前笔者用的是pscp初次部署
+ Notepad++持续开发
的模式。
下面讲讲pscp的简单使用。
前置环境:主机客机之间可以SSH通
。
SSH pscp实现开发与部署分离
工具下载
工具:Putty + pscp
Putty与pscp的官方下载页
下载安装很简单,略过。(pscp不需要安装)
使用方法
管理员模式打开Shell
一、从主机传输到客机
格式为pscp [文件绝对路径] [用户名]@[IP地址]:[客机绝对路径]
此处如果不显式指定登陆用户为root@
会报错(未解问题,之前SSH登陆如果不显式指定为root会permission denied
,万望各位指点)。
二、从客机传输到主机
格式与上述类似,同样,注意指定登陆用户为root。
三、在主客机之间传输目录下的所有文件
如果在C:\Users\zym\Desktop
目录下有这样一个文件夹:
我们可以传输单个文件夹到客机吗?
看来不可以。
使用-r
标志来将这个文件夹传输到客机:
四、SSH端口
SSH的默认端口是22,这里我用的也是22
使用-P [端口号]
来指定SSH的端口号
五、文件夹里的文件太多引起的问题
由于是单个文件单个文件的传输,效率很低,可以将文件夹压缩再传输。
六、尽量避免传输中文命名的文件
主机Shell显示传输成功(测试.txt内部不空白
)。
去客机看一眼,文件名变为四位乱码(看来该环境下中文占两位UTF-8)
打开该txt,发现是空白。那么这传输的1kB在哪?
看来中文名txt传输成功但内容出错
。
再试试其他格式:
中文png文件
去客机确认,发现png乱码但内容正常。
中文文件夹
如果在C:\Users\zym\Desktop
目录下有这样一个文件夹:
文件夹里的测试1.txt
和2.txt
有同样的文本内容。
客机确认,发现测试1.txt
和2.txt
中均是空白。