On Monday 02 July 2007, Jim Meyering wrote:
> Mike Frysinger <[EMAIL PROTECTED]> wrote:
> > # mkdir src dst
> > # touch dst/null
> > # mknod src/null c 1 3
> > # cp -a src/* dst/
> > cp: cannot create special file `d/null': File exists
> > # cp -a s/null d/null -f
> > cp: cannot create special file `d/null': File exists
> > # ls -l d/null
> > -rw-r--r-- 1 root root 0 2007-06-28 05:41 d/null
>
> Hmm... looks like you mixed up your examples: you create src and dst,
> but operate on "s" and "d"...  But I get the point.

yeah, sorry about that ... too many open terminals

> > i think in the case where cp encounters the destination as being a
> > regular file and the source as being a special file, it should simply
> > unlink the destination and create the destination the same as if it didnt
> > exist in the first place
>
> The spec seems to require the current behavior:
> [see 4b and the description of -f.
>  Note that -a isn't standard, but presume -pR, which are]:
>
>     http://www.opengroup.org/susv3xcu/cp.html
>
> While it's not entirely clear what must happen when failing to create
> a special destination file that is not a symlink or fifo, I think the
> intent is clear -- and it doesn't permit removing the destination.
>
> Also, -f applies only to regular files.
>
> If you can depend on GNU cp, use --remove-destination instead of -f.
> That will make cp do what you want.

flipping through the spec i'd have to agree with your assessment ... thanks
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
Bug-coreutils mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to