hexdump在Cygwin下将CRLF转换为LF

hexdump在Cygwin下将CRLF转换为LF,cygwin,line-endings,Cygwin,Line Endings,当使用Cygwin/bash下的hextump转储具有Windows行结尾(CRLF)的文本文件内容时,hextump似乎将该文件作为文本文件打开,并将行结尾从Windows(CRLF)转换为UNIX(LF),从而导致转储不正确 我正在Windows 7上运行Cygwin x86_64下运行bash 4.3.42: mgd@mgd-win7vm /cygdrive/c/tmp $ bash --version GNU bash, version 4.3.42(4)-release (x86_64

当使用Cygwin/bash下的
hextump
转储具有Windows行结尾(CRLF)的文本文件内容时,
hextump
似乎将该文件作为文本文件打开,并将行结尾从Windows(CRLF)转换为UNIX(LF),从而导致转储不正确

我正在Windows 7上运行Cygwin x86_64下运行bash 4.3.42:

mgd@mgd-win7vm /cygdrive/c/tmp
$ bash --version
GNU bash, version 4.3.42(4)-release (x86_64-unknown-cygwin)
...snip...
C:
作为“文本”安装在
/cygdrive/C
上:

mgd@mgd-win7vm /cygdrive/c/tmp
$ mount
C:/cygwin/bin on /usr/bin type ntfs (binary,auto)
C:/cygwin/lib on /usr/lib type ntfs (binary,auto)
C:/cygwin on / type ntfs (binary,auto)
C: on /cygdrive/c type ntfs (text,posix=0,user,noumount,auto)
现在,我们创建一个文本文件,其中有一行:

mgd@mgd-win7vm /cygdrive/c/tmp
$ echo "Hello" > textfile
该文件的长度为预期的7字节(“Hello”+CR+LF):

当我们使用
od
转储它时,我们得到了正确的输出:

mgd@mgd-win7vm /cygdrive/c/tmp
$ od -ctx1 textfile
0000000   H   e   l   l   o  \r  \n
         48  65  6c  6c  6f  0d  0a
0000007
但是,当使用
hextump
CR+LF时,会将其转换为LF:

mgd@mgd-win7vm /cygdrive/c/tmp
$ hexdump -C textfile
00000000  48 65 6c 6c 6f 0a                                 |Hello.|
00000006
这是虫子吗

有没有办法强制
hextump
以二进制模式打开文件

mgd@mgd-win7vm /cygdrive/c/tmp
$ hexdump -C textfile
00000000  48 65 6c 6c 6f 0a                                 |Hello.|
00000006