Como especificamos múltiplos padrões de ignorar para o comando 'tree'?

84

Eu preciso imprimir a estrutura de diretórios do nosso sistema de produção e eu gostaria de remover alguns diretórios específicos da árvore ?

Como especificamos vários padrões de ignorar para o comando tree ?

    
por SiB 11.09.2012 / 11:49

1 resposta

115

Você simplesmente fornecer todos os padrões para o comando -I , separados por | . A partir do manpage:

-P pattern
      List  only  those files that match the wild-card pattern.  Note:
      you must use the -a option to also consider those  files  begin‐
      ning  with a dot '.' for matching.  Valid wildcard operators are
      '*' (any zero or more characters), '?' (any  single  character),
      '[...]'  (any single character listed between brackets (optional
      - (dash) for character  range  may  be  used:  ex:  [A-Z]),  and
      '[^...]'  (any  single character not listed in brackets) and '|'
      separates alternate patterns.

-I pattern
      Do not list those files that match the wild-card pattern.

Então, por exemplo

tree -I 'test*|docs|bin|lib'

salta dos docs ', 'bin' e 'lib', diretórios e qualquer diretório com 'test' no nome, onde quer que se encontram dentro da hierarquia do diretório. Obviamente, você pode aplicar wildcards para correspondência muito mais poderoso.

    
por 11.09.2012 / 11:58