suprimir globalmente os avisos do diretório grep

1

Para certos usos óbvios, o comando grep pode gerar várias reclamações sobre nomes de pesquisa sendo diretórios. Observe os vários avisos "É um diretório", isso normalmente acontece com comandos como: grep texto *

por exemplo:

/etc/webmin # grep "log=1" * 
grep: cluster-webmin: Is a directory
config:log=1
grep: cpan: Is a directory
grep: man: Is a directory
miniserv.conf:log=1
miniserv.conf:syslog=1
grep: mon: Is a directory

Eu sei que posso usar a opção "-s" para suprimir esses avisos sobre diretórios (e stderr pode ser redirecionado para nul, mas isso é ainda pior), mas eu não gosto disso porque é um clichê extra que precisamos lembre-se de todos os tempos , e isso também suprime todos avisos, não apenas aqueles sobre diretórios.

Existe alguma maneira, onde esta advertência espúria pode ser suprimida para sempre e globalmente? Estou mais interessado no Debian e no Cygwin.

    
por William 20.03.2018 / 14:29

3 respostas

4

Dependendo da maneira como você deseja gerenciar o conteúdo dos diretórios,

  • grep -d recurse fará isso (manipulando diretórios recursivamente) ou
  • grep -d skip (ignorando diretórios e seu conteúdo).

Você pode fazer isso ser automático, adicionando-o a ~ / .profile ou ~ / .bashrc (um usuário) ou / etc / profile ou / etc / bashrc (todos os usuários)

alias grep="/bin/grep -d skip" 
    
por 20.03.2018 / 14:43
0

Você pode definir um alias em .profile ou .bashrc :

alias grep='grep -s'

Para o global, você pode fazer isso em /etc/profile ou /etc/bashrc

    
por 20.03.2018 / 14:30
0

Apenas para completar, o GNU grep honra uma variável de ambiente chamada GREP_OPTIONS . De man grep :

GREP_OPTIONS
      This variable specifies default options to be placed in front of
      any explicit options.  As  this  causes  problems  when  writing
      portable  scripts,  this  feature  will  be  removed in a future
      release of grep, and grep warns if it is used.   Please  use  an
      alias or script instead.

Você pode fazer export GREP_OPTIONS=-s , mas, como diz a página de manual, isso também será passado para os scripts e pode, sem querer, atrapalhar as coisas.

Por exemplo, eu tive scripts de GREP_OPTIONS=--color=always mess up configure usados para criar software. Depurando isso foi uma dor, não ficou claro onde estava o problema.

    
por 22.03.2018 / 04:02

Tags