( locsemege | 2012. 03. 01., cs – 21:55 )

É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