grep целые блоки файловой системы на устройствах

grep целые блоки файловой системы на устройствах

Команда

grep -rHinF --colour=always -e "aa:aa:aa:aa" /

Выход

grep: /dev/geom.ctl: Operation not supported by device
grep: /dev/devctl: Device busy

Кажется, что grepне может продолжить, так как ожидает устройство. Как я могу пропустить такие устройства?

решение1

Если findдоступно, попробуйте:

find / -type f -exec grep -rHinF --colour=always -e "aa:aa:aa:aa" {} +

Это применимо только к обычным файлам, поэтому блочные и символьные устройства будут пропущены. См man find. .

Вероятно, вы захотите пропустить каталоги вроде /procили /sys; как Стефан Шазелас указывает в комментариях, некоторые файлы там будут блокироваться (оставаться открытыми, зависая при поиске) при их чтении. Чтобы сделать это, вы можете попробовать директиву aka -xdev. -mount, предполагая, что остальная часть вашей файловой системы находится на одном устройстве. Если директива -fstypeработает для вас, это будет лучше (к сожалению, она не работает у меня на Linux).

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

Связанный контент