find находит файлы, не соответствующие фильтру inname

На языке LVM метаустройство — это устройство, созданное из какого-то другого устройства или набора устройств. Примеры включают устройства, созданные уровнем MD(/dev/md1и т. д. ), представляющие агрегированные устройства, и устройства, созданные самим LVM, представляющие логические тома (, поэтому можно создать PV из LV... ). ].

0
08.04.2021, 10:07
1 ответ

Факт :в 01 :01 два задания выполняются одновременно.

Гипотеза :рассматриваемая файловая система не хранит типы файлов в записях каталога.

Возможное объяснение

В какой-то момент findнеобходимо узнать тип исследуемого файла. Причиной может быть явная -typeпроверка, но и без нее (и в некоторых случаях перед ней)findнеобходимо знать, является ли файл каталогом. Если это каталог, то findспустится в него.

Я думаю, что ваша файловая система не хранит информацию о типах файлов в записях каталогов. В таком случае, чтобы узнать тип файла find, необходимо вызвать lstat(, хотя и не всегда, возможны некоторые оптимизации, см. этот ответ ), для этого требуется, чтобы файл существовал.

Если что-то еще удалит файл после того, как findузнает, что файл находится в каком-то каталоге, но до lstat, то будет No such file or directory. В вашем случае "что-то еще" - это другая работа.

Если бы файловая система хранила информацию о типе файла в записях каталога, все было бы иначе. Только -ctimeили -cminмогли дать No such file or directory, если другое задание удалило файл; но этого не может быть, потому что -inameтестируется раньше и отфильтровывает все возможные помехи.

На самом деле я протестировал GNU findна файловых системах ext4, созданных с флагом filetypeи без него. Без флага файловая система не сохраняет типы файлов в записях каталога. Устроил ситуацию, когда файлы создавались и удалялись другим процессом. Эти файлы преднамеренно не соответствовали -iname, используемым с find.

В моих тестах на файловой системе без флага filetypefindчасто жаловались на No such file or directoryдля файлов, которые даже не соответствовали -iname, которые я использовал. В тестах сfiletypefindни разу не жаловался.

2
28.04.2021, 22:53

Теги

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