Как мне записать xargs -0 rm?

Ядро выделяет 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 состоит в том, чтобы гарантировать, что приложения, получающие доступ к устройству по имени, достигнут числа, выбранного ядром).

2
02.11.2015, 05:25
2 ответа

rm обычно молчит при удалении файлов. Если вы хотите создать журнал, показывающий удаленные файлы, добавьте параметр -v . Таким образом, замените:

xargs -0 rm

на:

xargs -0 rm -v >log
2
27.01.2020, 22:04

Вы можете использовать сам 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
1
27.01.2020, 22:04

Теги

Похожие вопросы