[bug #46791] wishlist: no option to find devices for major/minor

Bernhard Voelker <[email protected]>
Newsgroups gmane.comp.gnu.findutils.bugs
Message-ID <[email protected]>
Update of bug #46791 (group findutils):

                  Status:                Obsolete => None
             Assigned to:                     jay => berny
             Open/Closed:                  Closed => Open

    _______________________________________________________

Follow-up Comment #5:

I see that adding such predicates is almost trivial, as the implementation
has
just to evaluate the already known value of 'struct stat' member 'rdev', and
we
already deal with major/minor numbers in -ls,-fls (although not in -printf).

I also don't see that this would add much risks or bloat, so it may fit quite
well into find(1).
As such, I'm hereby re-opening this one for discussion.

As for the user interface, I'd rather avoid messy parsing of the "x:y"
syntax,
and instead use the gear we already have for other numerical comparisons
(-inum, -gid, -uid, -size, -links) which additionally allows the comparison
with +N (COMP_GT), -N (COMP_LT) and exactly N (COMP_EQ).


# Search the device with number '1:3'.
$ find /dev -major 1 -minor 3 -exec ls -logd '{}' +
crw-rw-rw- 1 1, 3 Jan  5 23:14 /dev/null

# Search all devices with major number <2.
$ find /dev -major -2 -exec ls -logd '{}' +
crw-rw-rw- 1 1,  7 Jan  5 23:14 /dev/full
crw-r--r-- 1 1, 11 Jan  5 23:14 /dev/kmsg
crw-r----- 1 1,  1 Jan  5 23:14 /dev/mem
crw-rw-rw- 1 1,  3 Jan  5 23:14 /dev/null
crw-r----- 1 1,  4 Jan  5 23:14 /dev/port
crw-rw-rw- 1 1,  8 Jan  5 23:14 /dev/random
crw-rw-rw- 1 1,  9 Jan  5 23:14 /dev/urandom
crw-rw-rw- 1 1,  5 Jan  5 23:14 /dev/zero

# Search for all devices with minor number >300.
$ find /dev -type c -minor +300 -exec ls -logd '{}' +
crw-rw-r-- 1 189, 384 Jan  5 23:14 /dev/bus/usb/004/001
crw-rw-r-- 1 189, 385 Jan  5 23:14 /dev/bus/usb/004/002
crw-rw-r-- 1 189, 386 Jan  5 23:14 /dev/bus/usb/004/003


I prototyped that as new predicate names '-major N -minor N',
but I'm not strictly opposed to use more descriptive yet longer names
like '-devmajor N -devminor N' or even '-rdev_major N -rdev_minor N'
to emphasize that this test is limited to char+block devices.

I'm not sure one would rather like to see a combined '-rdev' test, as
e.g. one wouldn't really search with '-rdev 259' for '/dev/null', would one?

Missing at this point: doc (man+texi), tests.

FWIW: the suggested '-major N -minor N' even works for '0:0' devices
found in '/run/systemd/inaccessible/' on my system.

Opinions, objections, ...?

(file #56745)

    _______________________________________________________

Additional Item Attachment:

File name: 0001-FIXME-find-add-major-and-minor-predicate-to-search-f.patch
Size: 10KiB

<https://file.savannah.gnu.org/file/0001-FIXME-find-add-major-and-minor-predicate-to-search-f.patch?file_id=56745>


    AGPL NOTICE

These attachments are served by Savane. You can download the corresponding
source code of Savane at
https://savannah.gnu.org/source/savane-60bab5f4bb97079a4f50fd30c5633b2562628477.tar.gz


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?46791>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc (application/pgp-signature, 228 B)
-----BEGIN PGP SIGNATURE-----

iHUEABYIAB0WIQQk97aszIMMAvLLwm6qLAuaBUf3TgUCZ3xRdQAKCRCqLAuaBUf3
TgW1AQDknWnrt5J391CMKaLYrbiRutQQbHQhPyPVabLT1/iZswEArzTgfT9ZoDLu
gkXOeI4XZpSnlqwPHATIPgzLjS0cXQY=
=tGgL
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.