On 17/06/2019 13:22, Peter Tribble wrote:

$ PATH=/usr/xpg4/bin /bin/ksh -c "rm -f"
Usage: rm [-cFdfirRuv] file ...
...
$ PATH=/usr/xpg4/bin /bin/truss -f /bin/ksh -c "rm -f" |& grep rm
4436:   lstat("/usr/xpg4/bin/rm", 0xFFFFFC7FFFDFDCE0)   = 0
Usage: rm [-cFdfirRuv] file ...
...

I can't see a built-in rm or alias in ksh and if it were I would expect
-f to have the same effect.  The path must be making ksh act
differently.  What am I not understanding here?

In ksh, /usr/xpg4/bin/rm is a builtin.

% ksh builtin | grep /rm
/bin/rmdir
/usr/ast/bin/rm
/usr/ast/bin/rmdir
/usr/xpg4/bin/rm

I see, thank you for guiding me. I was checking with which and whence

$ zsh
$ which rm
/usr/xpg4/bin/rm
$ which [
[: shell built-in command
$ which which
which: shell built-in command

$ ksh
$ which rm
/usr/xpg4/bin/rm      <- no mention of builtin
$ which which
/bin/which            <- could be because which is not builtin
$ builtin | grep wh
whence
$ whence rm <- try the builtin whence
/usr/xpg4/bin/rm      <- no mention of builtin

ksh does not report like zsh.

The man page does not document it and I expect the built in rm to follow what it is substituting, (possibly we discover /usr/xpg4/bin/rm has been in error for 25 years).

This causes autoconf/configure to fail when it checks rm (checking punch tape reader LUN, checking for UNIVAC 18 bit words)

I've had xpg4 in my path for so long I've forgotten if it's still needed.










_______________________________________________
openindiana-discuss mailing list
[email protected]
https://openindiana.org/mailman/listinfo/openindiana-discuss

Reply via email to