Come possiamo specificare più schemi di ignore per il comando `tree`?


105

Devo stampare la struttura delle directory del nostro sistema di produzione e vorrei rimuovere alcune directory specifiche dall'albero ?

Come possiamo specificare più schemi di ignore per il treecomando?

Risposte:


141

Fornisci semplicemente tutti gli schemi al -Icomando, separati da |. Dalla 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.

Quindi, per esempio

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

salta "directory", "bin" e "lib", le directory e qualsiasi directory con "test" nel nome, ovunque si trovino all'interno della gerarchia di directory. Ovviamente, puoi applicare caratteri jolly per una corrispondenza molto più potente.


4
Guardò la pagina man, vide una spiegazione molto concisa per "-I", era frustrato. Non pensavo di guardare qualche riga sopra. Grazie. ;)
Tomislav Nakic-Alfirevic,

Come impostare il filtro per ottenere solo file .html, nient'altro
Jitendra Vyas

Grazie! Lo uso per sfogliare il mio codice dalla riga di comando con l'esclusione di node_modules.
thevangelist

2
Come può docs/subdoc/essere esclusa una sottodirectory come ?
user1032531

@JitendraVyas: che ne dici di tree --prune -P '*.html'ottenere anche le directory, ma solo quelle con i .htmlfile in esse.
fbicknel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.