Conflict between Cygwin 1.7 and Ubuntu for Windows 14316

Eliot Moss moss@cs.umass.edu
Wed Apr 13 13:36:00 GMT 2016


On 4/13/2016 9:11 AM, John Cowan wrote:
> LLoyd scripsit:
>
>> John, if you can confirm?
>
> Exactly right.
>
>> Please also provide the "cat /mnt/c/file1" and "cat /mnt/c/file2" from UoW.
>
>>From the Cygwin shell (note that my Cygwin and Windows home directories
> are the same: /home/cowan is a Cygwin symlink to /cygdrive/c/Users/cowan):
>
> cowan@large-skunk ~
> $ echo stuff >file1
>
> cowan@large-skunk ~
> $ cat file1
> stuff
>
> cowan@large-skunk ~
> $ ls -l file1
> -rw-r--r--+ 1 cowan cowan 6 Apr 13 08:57 file1
>
>>From cmd.exe:
>
> c:\Users\cowan>echo stuff >file2
>
> c:\Users\cowan>type file2
> stuff
>
>>From UoW bash prompt:
>
> root@localhost:~# cd /mnt/c/Users/cowan
> root@localhost:/mnt/c/Users/cowan# cat file1
> cat: file1: Permission denied
> root@localhost:/mnt/c/Users/cowan# cat file2
> stuff
> root@localhost:/mnt/c/Users/cowan# ls -l file1 file2
> -rwxrwxrwx 1 root root 6 Apr 13 12:57 file1
> -rwxrwxrwx 1 root root 8 Apr 13 12:57 file2
>
> As you can see, they look exactly the same but are different somehow.
> What is more, if I use cmd.exe echo to append to file1 and Cygwin echo
> to append to file2, it changes nothing.  Likewise, if I overwrite them
> completely, it changes nothing.  Only if I remove them and re-create
> them from the "wrong" side does file1 become readable and file2 become
> unreadable.
>
> This is 64-bit Windows on an NTFS file system, but 32-bit Cygwin.  I'll
> try installing Cygwin64 tonight and seeing if that makes any difference.


You can use the cygwin od (octal dump) command to see the exact byte contents
of the files.  (Use od -c <file>.)  I suspected that one difference was \r\n
line termination from Windows echo and \n termination from cygwin echo.  That
did not explain the two byte difference in length, however.  I tried it myself
and found that cmd's echo adds a space after "stuff".  If I do:
c:\Users\moss> echo stuff> file1
(Note: no space before the > !)
It writes "stuff" without the extra space.  The line termination is still \r\n.
cygwin's echo gets rid of the space (because bash trims it before passing the
"stuff" argument) and uses \n as the line terminator.

As for permissions issues, that would have to do with cygwin's permission
system, a rather different topic.

Perhaps you did not know that the two echo's are different?

Regards -- Eliot MOss

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list