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/

Attachment: signature.asc
Description: PGP signature

Reply via email to