É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