Como especificamos vários padrões de ignição para o comando `tree`?

105

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

Como especificamos vários padrões de ignorar para treecomando?

SiB
fonte

Respostas:

141

Você simplesmente fornece todos os padrões para o -Icomando, separados por |. Na página de manual:

-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'

pula os diretórios 'docs', 'bin' e 'lib', e qualquer diretório com 'test' no nome, onde quer que eles estejam na hierarquia de diretórios. Obviamente, você pode aplicar curingas para uma correspondência muito mais poderosa.

ire_and_curses
fonte
4
Olhou para a página de manual, viu uma explicação muito concisa para "-I", estava frustrado. Não pensei em olhar algumas linhas acima. Obrigado. ;)
Tomislav Nakic-Alfirevic
Como definir filtro para obter .html arquivos somente, nada mais
Jitendra Vyas
Obrigado! Eu uso isso para procurar meu código na linha de comando com a exclusão de node_modules.
thevangelist
2
Como um subdiretório como esse pode docs/subdoc/ser excluído?
user1032531
@JitendraVyas: que tal tree --prune -P '*.html'Você também receberá diretórios, mas apenas aqueles com .htmlarquivos neles.
Fbicknel