`Ağaç` komutu için çoklu yoksayma kalıplarını nasıl belirleriz?


105

Bizim üretim sisteminin dizin yapısını yazdırmak gerekiyor ve ben bazı spesifik dizinleri kaldırmak istiyoruz ağacın ?

treeKomut için birden fazla yoksayma desenini nasıl belirleriz ?

Yanıtlar:


141

-IKomuta tüm kalıpları ayırarak ayırmanız yeterlidir |. Manpage'den:

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

Yani, örneğin

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

'docs', 'bin' ve 'lib' 'yi, dizinleri ve adında' test 'olan herhangi bir dizini, dizinin hiyerarşisinde nerede olabileceklerini atlar. Açıkçası, çok daha güçlü eşleştirme için joker karakterler uygulayabilirsiniz.


4
Adam sayfasına baktığımda, "-I" için çok özlü bir açıklama gördüm, hüsrana uğradı. Yukarıdaki birkaç çizgiye bakmayı düşünmedim. Teşekkürler. ;)
Tomislav Nakic-Alfirevic

Sadece .html dosyalarını almak için filtreyi ayarlama, başka hiçbir şey yapma
Jitendra Vyas

Teşekkürler! Kodumu node_modules hariç komut satırından taramak için bunu kullanıyorum.
thevangelist

2
Gibi bir alt dizin nasıl docs/subdoc/dışlanabilir?
user1032531

@JitendraVyas: Peki ya tree --prune -P '*.html'dizinler alacaksın, ama sadece içinde .htmldosya olanları .
fbicknel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.