Problem with system commands: cp and mv

Christopher Faylor cgf@redhat.com
Sat Jun 9 21:57:00 GMT 2001


On Sat, Jun 09, 2001 at 03:54:21PM +0300, Ehud Karni wrote:
>On Fri, 8 Jun 2001 16:54:01 -0700, Kerry Sanger <kerry@bytedesigns.com> wrote:
>> 
>> I can't cp or mv any simple executable..example:
>> 
>>      simple C program - expire.c
>> 
>>      compile and link expire.c:
>>     
>>             gcc -c -I. expire.c
>>             gcc expire.o -o expire
>> 
>>      from the current directory where the expire
>>      executable exists and where a subdirectory util
>>      exists:                  cp expire util/
>>     -or-                      cp expire util/expire
>>     -or-                      mv expire util/
>>     -or-                      mv expire util/expire
>> 
>>      all return: 'expire and util/expire are the same file'..eh?
>>      there is no util/expire..so what's it seeing/comparing? 
>> 
>>      I can cp or mv any other flat file or library ( .a ) I've
>>      created to util..just not any of the executables.
>> 
>>      cygwin seems to think the current path and the
>>      current path/util are the same as though I were 
>>      attempting: cp expire ./expire
>>      ( in which case I would expect the error:
>>          expire and expire are the same file ).
>> 
>>      I can go to a dos window and:
>> 
>>        copy dcheck.exe util
>> -or- copy dcheck.exe util\
>> -or- copy dcheck.exe util\dcheck 
>
>I verified the problem on W98 too.
>It also occurs with hardlink (ln) but not with symbolic link (ln -s)
>presumably because `ln -s' does not check file existence.
>
>A very easy solution (workaround ?) is to use the file name with the
>.exe extension (checked\).

That's not only the easy solution, it is the correct one.  Also use UNIX
paths, not MS-DOS paths.  cp doesn't necessarily know that util\dcheck
refers to a directory.

cgf

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list