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