Bagaimana kita menentukan beberapa pola abaikan untuk perintah `tree`?

105

Saya perlu mencetak struktur direktori sistem produksi kami dan saya ingin menghapus beberapa direktori spesifik dari pohon ?

Bagaimana kita menentukan beberapa pola abaikan untuk treeperintah?

Saudara
sumber

Jawaban:

141

Anda cukup memberikan semua pola ke -Iperintah, dipisahkan oleh |. Dari halaman 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.

Jadi misalnya

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

melompati 'docs', 'bin', dan 'lib', direktori, dan direktori apa pun dengan 'test' dalam namanya, di mana pun mereka berada dalam hierarki direktori. Jelas, Anda dapat menerapkan wildcard untuk pencocokan yang jauh lebih kuat.

ire_and_curses
sumber
4
Melihat halaman manual, melihat penjelasan yang sangat singkat untuk "-I", merasa frustrasi. Tidak terpikir untuk melihat beberapa baris di atas. Terima kasih. ;)
Tomislav Nakic-Alfirevic
Cara mengatur filter untuk mendapatkan file .html saja, tidak lain
Jitendra Vyas
Terima kasih! Saya menggunakan ini untuk menelusuri kode saya dari baris perintah dengan mengecualikan node_modules.
thevangelist
2
Bagaimana subdirektori seperti docs/subdoc/dikecualikan?
user1032531
@JitendraVyas: bagaimana tree --prune -P '*.html'Anda juga akan mendapatkan direktori, tetapi hanya mereka yang memiliki .htmlfile di dalamnya.
fbicknel