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 не может продолжаться, потому что он ждет устройства. Как пропустить такие устройства?

  • Собирать коды выхода из параллельных фоновых процессов (подклассов)
  • Автозаполнение и раскраска не работают, при использовании ssh в оболочке emacs
  • sed восклицательные знаки
  • Выполнить строку из сценария оболочки как набор команд оболочки
  • Выполнение сценария оболочки с удаленного сервера на локальной машине
  • Странная разница между pwd и / bin / pwd
  • $ VAR vs $ {VAR} и цитировать или не указывать
  • Сценарий оболочки говорит о том, когда нужно выполнить в следующий раз
  • One Solution collect form web for “grep целые блоки файловой системы на устройствах”

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

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

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

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

    ИМО, вместо того, чтобы возиться с этим, вы должны просто повторить процесс для любых справочников верхнего уровня, которые вы действительно хотите найти, вместо того, чтобы пытаться сделать все за один раз (в этом случае вам может не понадобиться найти …)

    Linux и Unix - лучшая ОС в мире.