sftp中的transfermode类型

sftp中的transfermode类型,ftp,sftp,edtftpj,Ftp,Sftp,Edtftpj,ftp和sftp传输类型在传输模式(二进制、ASCII)方面有什么区别吗?在sftp传输中,我们是否仍然有二进制和ASCII传输选项,或者无论我们选择与否,它都有其默认模式。在ssh上工作,并且没有与FTP传输模式等效的模式。换句话说,SFTP传输总是二进制的,字节到字节的精确传输 但你不应该把它和你的想法混淆FTPS与旧的FTP非常相似,但通过SSL,并且受到一些服务器的支持。因为它仍然是用SSL包装的旧FTP,所以它确实支持传输模式(ascii或二进制)的概念。然而,FTPS服务器在野外非常

ftp和sftp传输类型在传输模式(二进制、ASCII)方面有什么区别吗?在sftp传输中,我们是否仍然有二进制和ASCII传输选项,或者无论我们选择与否,它都有其默认模式。

ssh
上工作,并且没有与
FTP
传输模式等效的模式。换句话说,
SFTP
传输总是二进制的,字节到字节的精确传输


但你不应该把它和你的想法混淆
FTPS
与旧的
FTP
非常相似,但通过
SSL
,并且受到一些服务器的支持。因为它仍然是用SSL包装的旧FTP,所以它确实支持传输模式(ascii或二进制)的概念。然而,FTPS服务器在野外非常罕见,我认为很难真正遇到它。

谢谢您的回答。您知道如何使用sftp将文件从unix发送到windows系统吗?据我所知,在这种情况下会出现EOL问题。是在Windows和Linux之间传输文件的极好工具(它只需要
ssh
即可工作)。行尾将被准确地保留下来——这是一件好事(否则可能会损坏可执行文件或图像)。如果您不喜欢Linux上的CRLF,请在Linux shell中使用实用程序
dos2unix
fromdos
,将
CRLF
仅转换为
LF
。实际上,我有一个用于发送文件的自定义java应用程序。此应用程序在unix上运行,并从unix和windows发送/接收文件。如果我们使用ftp,一切都很好。我们刚刚测试了正确的模式,完成了。但是,如果出现sftp EOL问题,如果使用得当,Windows程序和编辑器可以仅使用
LF
处理文件。事实恰恰相反:除了少数情况外,Linux脚本将使用CRLF结尾。然而,这有一个秘密:在脚本(
bash
perl
,等等)中,在shebang行的第一个空格后使用一些不重要的参数,使其忽略CRLF问题。例如,在Perl中,使用
#/usr/bin/perl-w
可以正常工作,但是
#/usr/bin/perl
将失败。您也可以使用类似于
的东西#/usr/bin/env perl
FYI:SFTP协议版本4及更高版本具有ASCII模式。