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.
- 1773 megtekintés
Hozzászólások
Az nem ell hanem nagy i lesz.
[kötőjel nagy i csillag pont srt]: -I *.srt
- A hozzászóláshoz be kell jelentkezni
Az én szememmel is baj van, mert L-nek olvastam, közben I-t írtál.
Közben próbálgattam, nálam működik, de egy bizonyos mappában nem. Lehetséges, hogy valamilyen jogosultságok kellenek hozzá? Rootként ugyanazt írja ki.
- A hozzászóláshoz be kell jelentkezni
Köszi mindenkinek a választ.
Én nagy "I"lona betűt írtam, de elcsesztem. mert leírtam hogy "nagy" és egy nagy "I"lona betűt tettem hozzá.
De itt az "Il"ona szóban látszik is milyen egyformák. A nagy L betű másmilyen.
A lényeg hogy megoldódott.
- A hozzászóláshoz be kell jelentkezni
tree -I "*.avi"
kihagyja a minára illeszkedő fájlokat nálam.
Idézőjel nélkül nálam is rossz.
Debian squeeze
- A hozzászóláshoz be kell jelentkezni
No, akkor ismét tanultunk valami újat :D
Van ahol jó idézőjel nélkül, de idézőjellel mindenhol működik :)
- A hozzászóláshoz be kell jelentkezni
Igen én is most teszteltem, ha van alkönyvtár akkor nálam nem ír hibát, ha nincs egy alkönyvtár sem akkor viszont pont az ellenkezőjét csinálja mint kellene és hibát ír.
Idézőjellel mindenhol jó.
- A hozzászóláshoz be kell jelentkezni
Nyilván. Magyarázat alant. :)
tr [:lower:] [:upper:] <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
É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 hozzászóláshoz be kell jelentkezni
A működését én sem értettem, de így már világos.
Köszi.
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni