-I
ist das Gegenteil von -P
... das Handbuch gibt weitere Informationen darüber, was für Letzteres akzeptabel ist:
https://linux.die.net/man/1/tree
-P pattern
Listet nur die Dateien auf, die dem Platzhaltermuster entsprechen.
Hinweis: Sie müssen die
-a
Option verwenden, um auch die Dateien zu berücksichtigen, die mit einem Punkt.
zum Abgleich beginnen.Gültige Platzhalteroperatoren sind
*
(beliebig null oder mehr Zeichen),?
(beliebiges einzelnes Zeichen),[...]
(ein beliebiges einzelnes Zeichen in Klammern (optional-
(Bindestrich) für den Zeichenbereich): ex:)[A-Z]
und[^...]
(jedes einzelne Zeichen, das nicht in Klammern aufgeführt ist) ) und|
trennt alternative Muster.
Es wird keine Erwähnung der Klammer-Erweiterungssyntax der Shell von ... erwähnt. Diese Erweiterung wird von
tree
nicht behandelt bash
.
Und leider kannst du nicht -I
mehrfach angeben ...
Stattdessen müssen Sie die vollständigen Muster mit einem Pipe ( |
) auflisten, um sie voneinander zu trennen:
tree -I '*.svg|*.png'
Beachten Sie die Verwendung von einfachen Anführungszeichen, um zu verhindern, dass die Shell das Sternchen ( *
) oder die Variablen (durch einen Dollar eingeführt $
) erweitert.
Beachten Sie auch, dass es nicht möglich ist, die Ausdehnung der Schale zu erzwingen, wie unten gezeigt:
$ tree -I '*.' + tree -I '*.svg' '*.png' *.png [error opening dir]