Eric Blake wrote:
>>> cp [-Pfip] source_file target_file
>> Thanks for the clarification. So POSIX mandates all of -fin are allowed,
>> the last taking precedence. I presume it also means warnings should not be
>> printed.
> 
> No, POSIX only mandates -fi.  -n is an extension, so we can make it
> behave however we'd like (although consistent behavior goes a long way).
> 
>> In any case I think the `mv` descriptions should we reworded to something
>> like:
>>
>> -f    rename a file even if the destination is present and not writable
>>       (overrides any previous -i or -n option).
> 
> Not quite.  -f and -i do not override each other.  Per POSIX, they
> affect independent code paths, such that:
> 
> cp
> cp -f
> cp -i
> cp -f -i (also spelled cp -i -f)
> 
> have four different behaviors.

OK I had missed the asymmetry between the
-f options of mv and cp.

The descriptions in Kamil's patch look correct so.

For my own reference this is how I now see
the overwrite characteristics of cp & mv:

cp : default overwrite method = truncate only (file must be writable)
  -f overwrite method = truncate falling back to unlink+create
     (redundant if the -n option is used)
  --remove-destination
     overwrite method = unlink+create
     (redundant if the -n option is used)
  -i prompt before trying to overwrite dest
     (overrides any preceeding -n option)
  -n never overwrite
     (overrides any preceeding -i option)

mv : prompt to overwrite if dest not writable
  -f never prompt before overwriting
     (overrides any preceeding -i or -n options)
  -i always prompt before overwriting
     (overrides any preceeding -f or -n options)
  -n never overwrite
     (overrides any preceeding -f or -i options)

p.s. According to the FreeBSD manpages referenced in this thread,
cp -f in FreeBSD doesn't conform to POSIX, and instead
means as I originally thought: "try best to overwrite _and don't prompt_."
I.E. it overrides any preceeding -i or -n options.

cheers,
Pádraig.


_______________________________________________
Bug-coreutils mailing list
Bug-coreutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to