Query about P1003.2 'cp' utility
John Caywood
caywood at teb.larc.nasa.gov
Fri Sep 7 06:26:00 AEST 1990
From: caywood at teb.larc.nasa.gov (John Caywood)
In Volume 21, Number 42, djm at eng.umd.edu (David J. MacKenzie) writes:
> In draft 10, cp never ever unlinks files.
> In draft 10, all -f does in cp is turn off a previous -i.
> I'm going to object to this on the FSF ballot; I think -f should make
> it unlink (unconditionally), like it does for mv, ln, and rm, or else
> not be specified at all in the standard, since it's not existing
> practice.
Based on this article, I was about ready to submit an objection in
support of the above. On closer inspection, however, I think the
objection is nullified by an earlier clause:
(3) If source_file exists....
(a) If dest_file exists....
[1] If -i is in effect....
[2] If dest_file isn't writable....
[3] A file descriptor shall be obtained by performing
actions equivalent to the POSIX.1 open() function
call using dest_file as the path argument, and the
bitwise inclusive OR of O_WRONLY and O_TRUNC as
the oflag argument.
I take this to mean that, no, cp doesn't unlink an existing file, but
it truncates it upon opening under these conditions. Consequently,
yes, djm is correct, cp doesn't unlink. I don't understand, though,
why opening with O_TRUNC isn't equivalent.
John Caywood, balloting .2 on behalf of NASA Langley Research Center
Volume-Number: Volume 21, Number 84
More information about the Comp.std.unix
mailing list