SCP中的默认文件传输模式

时间:2012-01-05 06:08:56

标签: scp

我想知道使用SCP传输文件时使用的默认模式(ASCII或二进制,如FTP)。

SCP中是否有任何文件模式概念?它是如何工作的?

3 个答案:

答案 0 :(得分:34)

FTP中的文件传输模式用于解决具有不同行结尾的不同操作系统的问题。我们的想法是,如果文本文件从Unix机器传输到Windows机器,则行结尾必须固定,这意味着LF必须由文件中的CR LF替换。在向另一个方向传输文件时,必须执行相反的操作。

但是,如果要传输二进制文件,则希望保持文件原样,因为二进制文件中的任何LF实际上不是行结尾。因此,FTP引入了ASCII模式和二进制模式。

这仍然是一个有问题的解决方案,特别是因为默认模式是ASCII模式,所以如果你忘了切换模式,你可能会破坏你的二进制文件,它们将无法工作。不同的模式被认为比他们解决的问题造成更多麻烦。

因此,SCP根本不提供此功能,并始终保留文件。使用dos2unixunix2dos等工具将固定行结尾留给用户。

本质上,所有文件都以“二进制”模式传输,这意味着行结尾永远不会改变。

答案 1 :(得分:5)

根据我的知识,scp没有模式。 有关详细信息,请参阅此man页面

答案 2 :(得分:0)

我想知道使用SCP传输文件时使用的默认模式(ASCII或FTP等二进制)是什么。

不幸的是,根据我的经验,这取决于您正在运行的OS上的scp实现。例如,尽管linux scp似乎没有对文件做任何更改-即EOL字符未在Windows和linux之间转换,但在z / OS(sic)下却不是这样。在IBM大型机上,所有被scp-文件都似乎由scp应用程序本身从ASCII转换为EBCDIC字符编码。

但是,默认情况下,看起来sftp不会 进行字符转换,因此文件以其本机ASCII格式出现。