Ядро выделяет major:minor число, любой статически (в драйверах, которые действительно имеют статическое выделение и не закончились), или динамично (в драйверах, которые поддерживают динамическое выделение и израсходовали их статическое выделение). Это число перечислено в сообщении, что ядро отправляет к udev.
Вы видите переменные, в которых udev занимается устройством /sys/devices/…/uevent
. Например:
$ cat /sys/devices/virtual/mem/null/uevent
MAJOR=1
MINOR=3
DEVNAME=null
DEVMODE=0666
$ cat /sys/block/sda/sda1/uevent
MAJOR=8
MINOR=1
DEVNAME=sda1
DEVTYPE=partition
Правила udev определяют имя (имена) и полномочия файлов устройств. Номер устройства прибывает из ядра (это имеет к, так как ядро уже приняло решение, и задание udev состоит в том, чтобы гарантировать, что приложения, получающие доступ к устройству по имени, достигнут числа, выбранного ядром).
rm
обычно молчит при удалении файлов. Если вы хотите создать журнал, показывающий удаленные файлы, добавьте параметр -v
. Таким образом, замените:
xargs -0 rm
на:
xargs -0 rm -v >log
Вы можете использовать сам find
для удаления файлов и в то же время для записи их имен в стандартный вывод:
find /var/www/html -type f -regex ".*/.*\.\(png\|jpg\)" -delete -print >logfile
Примечание: Порядок параметров -delete
и -print
важен. Вторая опция будет применяться только в том случае, если первая вернет истину, т.е. если первая опция -delete
не смогла удалить файл, то его имя не будет выведено на стандартный вывод. Если вы сначала поместите -print
, тогда имя файла будет помещено в стандартный вывод независимо от того, действительно ли -delete
может удалить файл.
Note2 : Мне пришлось убрать скобки и вертикальную черту, чтобы регулярное выражение работало по умолчанию с помощью утилиты find
моей системы. В качестве альтернативы вы можете указать, например, от -regextype
до posix-egrep
. В любом случае, сначала стоит попробовать команду найти
без опции -delete
, чтобы проверить, правильно ли она находит файлы:
find /var/www/html -type f -regex ".*/.*\.\(png\|jpg\)" -print