grep blocos de sistema de arquivos inteiros em dispositivos

3

Comando

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

Saída

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

Parece que grep não pode continuar porque está aguardando por um dispositivo. Como posso pular esses dispositivos?

    
por TaXXoR 07.10.2013 / 11:45

1 resposta

6

Se find estiver disponível, tente:

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

Isso se aplica apenas a arquivos regulares, por isso, ele ignorará os dispositivos de bloco e de caractere. Veja man find .

Você provavelmente deseja ignorar diretórios como /proc ou /sys ; como Stéphane Chazelas aponta nos comentários, alguns arquivos lá irão bloquear (permanecer abertos, pendurados na busca) quando você os ler. Para fazer isso, você pode tentar o -xdev aka. -mount directiva, presumindo que o resto do seu sistema de arquivos está em um dispositivo. Se a diretiva -fstype funcionar para você, seria melhor (infelizmente não funciona para mim no linux).

IMO, em vez de mexer com isso, você deve repetir o processo para os diretórios de primeiro nível que realmente deseja pesquisar, em vez de tentar fazer tudo de uma só vez (caso em que talvez não seja necessário encontrar ...)

    
por 07.10.2013 / 11:57