¿Cómo especificamos múltiples patrones de ignorar para el comando `tree`?

105

¿Necesito imprimir la estructura de directorios de nuestro sistema de producción y me gustaría eliminar algunos directorios específicos del árbol ?

¿Cómo especificamos múltiples patrones de ignorar para el treecomando?

Hermano
fuente

Respuestas:

141

Simplemente proporcione todos los patrones al -Icomando, separados por |. Desde la página del 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.

Así por ejemplo

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

omite los directorios 'docs', 'bin' y 'lib', y cualquier directorio con 'test' en el nombre, donde sea que se encuentren dentro de la jerarquía de directorios. Obviamente, puede aplicar comodines para una coincidencia mucho más poderosa.

ire_and_curses
fuente
44
Miré la página de manual, vi una explicación muy concisa para "-I", estaba frustrado. No pensé mirar algunas líneas arriba. Gracias. ;)
Tomislav Nakic-Alfirevic
Cómo configurar el filtro para obtener solo archivos .html, nada más
Jitendra Vyas
¡Gracias! Lo uso para explorar mi código desde la línea de comando excluyendo node_modules.
thevangelist
2
¿Cómo se docs/subdoc/puede excluir un subdirectorio como ?
user1032531
@JitendraVyas: ¿qué tal tree --prune -P '*.html'? También obtendrá directorios, pero solo aquellos con .htmlarchivos en ellos.
fbicknel