[MEGOLDVA] tree parancs -I opció nem működik, vagy csak nem értem

Ha jól értelmezem a man-t ,akkor a -nagy I betű opcióval megadhatom a tree parancsnak hogy milyen sorokat ne listázzon ki.
Egy teszt mappában mindenféle kiterjesztésű fájlok vannak, és egy bizonyosat, mondjuk az .srt végződésűt nem szeretném vele kiíratni.

man tree
-I pattern Do not list those files that match the wild-card pattern. (Ne sorolja fel azokat a fájlokat, amelyek megfelelnek a mintának.)

$ tree -I *.srt
Power Kids.2009.720p.BluRay.x264-LCHD.eng.srt [error opening dir]

0 directories, 0 files

A tree --charset UTF-8 -N útvonal nekem nagyon megfelelő. Csak igény lenne hogy bizonyos kiterjesztésű fájlokat ne listázzon ki. Minden mást igen. Sajna nem találtam exclude lehetőséget.
Ha ezzel nem lehet, akkor mivel lehet, úgy hogy a fastruktúra, és a vonalak, melyeket a tree kirajzolt meglegyen.

Hozzászólások

Az nem ell hanem nagy i lesz.

[kötőjel nagy i csillag pont srt]: -I *.srt

tree -I "*.avi"

kihagyja a minára illeszkedő fájlokat nálam.
Idézőjel nélkül nálam is rossz.

Debian squeeze

Érted is, hogy miért? Legyen az adott könyvtárban 4 file:

alma.srt
korte.srt
majom.pdf
szilva.srt

Ekkor a

tree -I *.srt parancsot a shell így helyettesíti:

tree -I alma.srt korte.srt szilva.srt

Tehát az alma.srt-t ignorálja majd, de nem a *.srt-t, hiszen a shell előbb helyettesített. Ráadásul a korte.srt és a szilva.srt nem a -I-hez tartozik, azok már directory nevek, amelyről tree-t kérsz.

A *-ot literálisként kell átadni a tree-nek, hogy ő értse meg, hogy ez egy neki szóló paraméter, amelyet a saját belső szabályai szerint fog értelmezni.

Amikor idézőjel nélkül jó volt, akkor csak annyi történt, hogy az adott alkönyvtárban nem történt illeszkedés a glob-ra, így a shell a *-ot literálisként adta át.

Egyébként próbáld ki ezeket:

echo *
echo *.jpg
echo *.ilyennemlesz

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE

A *.srt globbingot előbb a shell kifejti, majd átadja a tree-nek. Így kellene:

tree -I \*.srt

Vagy így:

tree -I '*.srt'

tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE