> From: Jim Meyering <[EMAIL PROTECTED]>
> Date: Sun, 05 Aug 2001 12:34:09 +0200
> 
> With the proposed change:
> 
>   $ touch a b;echo n|./mv -i a b; echo $?; echo
>   ./mv: overwrite `b', overriding mode 0444? 0

That sounds like a good change, but doesn't the same issue arise even
without the -i option?  For example, here is my reading of how 'mv'
should behave without -i:

   $ rm -f a b; touch a b; chmod 0 a b; mv a b; echo $?
   mv: b: override protection 0 (yes/no)? n
   0

and yet GNU mv mishandles this: it renames a to b without asking the
user any questions.


> This is the ambiguous part of the POSIX spec:
> 
>   EXIT STATUS
>     The following exit values shall be returned:
>       0 All input files were moved successfully.
>       >0 An error occurred.
> 
> The exit status seems to be over-specified, because with -i and a
> negative response, there is neither an error, nor have all files been moved.

My reading is that the POSIX spec (1003.1-200x d7) tries to
distinguish between the "source files" (the files specified on the
command line) and the "input files" (the files that are actually
attempted to be moved, after -i and/or permissions checking is done).
If my reading is correct, the exit status is not over-specified
because all "input files" must be moved successfully for exit status
0; also, the traditional mv behavior conforms but GNU mv does not
conform yet.  However, I agree that the standard could be worded more
clearly.

_______________________________________________
Bug-fileutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-fileutils

Reply via email to