[linux] prikaz find

tyzenhaus tyzenhaus na atlas.sk
Pondělí Duben 18 19:51:08 CEST 2005


Plzik Milan wrote:

>Viem:-). Je to celkom pekna chybicka - vlastne problem je tu s expanziou 
>'*', ktoru bash robi sam od seba. Iba ak nevie expandovat slovo s *, necha 
>ho nezmenene. Takze ak v aktualnom adresari mas viac suborov, ktore 
>zacinaju na X (prvy pripad, expadnuje na find /etc/X11 -name Xsubor1 
>Xsubor2...), stane sa presne to, co v prvom pripade. Ak v aktualnom 
>adresari ale nemas nic zacinajuce na Xv, bash nespravi expanziu a find 
>dostane ako argument skutocne Xv*
>
>Pokial potrebujes predat * ako argument find-u bez ohladu na expanziu, 
>treba to spravit takto:
>
>find /etc/X11 -name X\*
>
>Spatne lomitko zabranuje expanzii znaku, co je za nim
>
>	Milan Plzik
>
toto by vysvetlovalo to na co som sa pytal, ale ako som okolo toho 
badal, prisiel som este na jednu zaujimavu vec:

[stevo na petra ~]$ pwd
/home/stevo
[stevo na petra ~]$ find /etc/X11 -name pr*
/etc/X11/starthere/preferences.desktop
/etc/X11/proxymngr
/etc/X11/prefdm
[stevo na petra ~]$ cd /etc/X11
[stevo na petra X11]$ find /etc/X11 -name pr*
find: paths must precede expression
Usage: find [path...] [expression]

Proste ak pred shellom tu expanziu "neochranim", k chybovej hlaske od 
findu dojde len vtedy, ked prehladava aktualny adreasar a vzoru 
zodpoveda viac suborov, ak prehladava iny adresar ako aktualny, tak  
vystup findu je rovnaky ako keby som tu hviezdicku pred shellom skryl. 
Bash nema dovod aby sa v oboch pripadoch nespraval rovnako, mohlo by to 
znamenat, ze bash tu expanziu nerobi ani ked ta hviesdicka nie je pred 
nim nijako chranena? Lebo ked zadam
find -name subor1 subor2
dostanem chybu v kazdom pripade.




Další informace o konferenci linux