Offer common aliases for operators `-a`, `-o`, and `!` in find(1)
Currently, illumos find(1) does not support `-not` as an alias to the `!` operator. And it doesn't support the long forms `-and` and `-or` for `-a` and `-o`, respectively, either.
Busybox, GNU, FreeBSD, NetBSD, and OpenBSD all offer those in their versions of find(1). So, it would be quite nice to have them on illumos as well.
Also, `-and`, `-or`, and `-not` are both less cryptic and more consistent than `-a`, `-o`, and `!`.
Updated by Robert Mustacchi over 1 year ago
I'm taking a look at the source and it does seem like we have all three of these present in cmd/find/find.c:
rm@beowulf:/var/tmp$ which find /usr/bin/find rm@beowulf:/var/tmp$ find . -type f -o -type d . ./diskinfo.out ./topo.out ./blahdisk-nl ./blahdisk rm@beowulf:/var/tmp$ find . -type f -or -type d . ./diskinfo.out ./topo.out ./blahdisk-nl ./blahdisk rm@beowulf:/var/tmp$ ls -ltrs total 49 31 -rw-r--r-- 1 rm other 159803 Dec 7 09:35 topo.out 1 -rw------- 1 rm other 104857600 Jan 16 10:12 blahdisk 1 -rw------T 1 root root 104857600 Jan 16 11:20 blahdisk-nl 16 -rw-r--r-- 1 root root 90140 Jan 16 11:21 diskinfo.out rm@beowulf:/var/tmp$ find . -type f -not -user root ./topo.out ./blahdisk rm@beowulf:/var/tmp$ find . -type f -not -user root ./topo.out ./blahdisk
So at least this is all working or me with illumos. It is missing from the manual page. Is there a particular distribution that you're using or an example where this isn't working for you?
Updated by Michael Siegel over 1 year ago
I was solely going by what the documentation says. I don't have an illumos system around for testing, currently.
So, adding these things to the manual page is apparently all that needs to be done.
find manual page should also have a section mentioning which of the options, primaries, and operators are extensions to POSIX. OpenBSD does that quite nicely: https://man.openbsd.org/find#STANDARDS