cp "skipping file ..., as it was replaced while being copied

Bill Priest priestwilliaml@gmail.com
Fri Mar 29 14:11:00 GMT 2013

  I've been using a program/device driver that maps an FTP site to a
windows drive (yes I know about the Windows 7 way to do almost the
same thing; but I could only get to the share using windows explorer
and not cygwin) and things work pretty well except when I try to do a
simple cp file1.txt file2.txt I get the following:

/usr/bin/cp: skipping file `file1.txt', as it was replaced while being copied

I found the "offending" code in copy.c and commented it out and the
resulting excutable then "works".  I'm not sure why the inodes are the
same for both files.  I've never seen this w/ samba or "normal"
network shares; I guess it is a bug in the driver implementation
(however, mv file1.txt file2.txt, cat file1.txt > file2.txt, and other
commands I have tried work w/o issue).  I'm not sure what the code is
trying to protect against (once the open works shouldn't you be able
to trust the OS that the rest will work)??

I'm not reporting this as a bug as much as trying intellectual
curiosity of why the code is doing it.


diff -u copy.c~ copy.c
--- copy.c~ 2013-03-28 13:48:47.923995100 -0500
+++ copy.c 2013-03-29 08:49:03.795004400 -0500
@@ -835,6 +835,7 @@

/* Compare the source dev/ino from the open file to the incoming,
    saved ones obtained via a previous call to stat. */
+#if 0
if (! SAME_INODE (*src_sb, src_open_sb))
    error (0, 0,
@@ -843,7 +844,7 @@
    return_val = false;
    goto close_src_desc;
      /* The semantics of the following open calls are mandated
          by the specs for both cp and mv. */
      if (! *new_dst)

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