Project

General

Profile

Actions

Feature #13555

open

Offer common aliases for operators `-a`, `-o`, and `!` in find(1)

Added by Michael Siegel 7 months ago. Updated 7 months ago.

Status:
New
Priority:
Normal
Category:
cmd - userland programs
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Tags:
find operator alias
Gerrit CR:

Description

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 `!`.

Actions #1

Updated by Robert Mustacchi 7 months 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?

Actions #2

Updated by Robert Mustacchi 7 months ago

  • Assignee set to Robert Mustacchi
Actions #3

Updated by Michael Siegel 7 months 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.

Apropos: The 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

Actions

Also available in: Atom PDF