问题现象:
从Windows 上通过sftp协议下载一个linux 服务器上的con.zip 失败,下载其它文件正常,通过linux sftp客户端或者windows ssh的sftp客户端都可以下载,而filezilla下载总是失败,压缩包在linux 服务器检查并无错误(unzip -t con.zip), 更换winscp 后也能正常下载但是看相比其它压缩包,con.zip并未被系统当做压缩包处理。
问题原因:
最终推测为windows系统reserved keywords 导致,在windows 中文件夹/文件 名不能含下面列出的关键字
CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9
将文件con.zip 改名后测试filezilla也可以下载。
注意:在CMD窗口下操作不受此限制,因此windows ssh中包含的sftp工具下载正常,但是这会导致下载之后保存的文件无法在资源管理器中正常操作。
拓展阅读
微软官方关于保留关键字的说明
https://learn.microsoft.com/en-us/windows/win32/fileio/naming-a-file