[linux] Re: prikaz find

Juraj Variny jv99737 na decef.elf.stuba.sk
Neděle Duben 17 20:00:14 CEST 2005


Mozes si priamo otestovat ako bash expanduje pr* (a cokolvek podobne) prikazom 

echo pr*

v roznych adresaroch. Niekedy uvidis mena suborov a inokedy iba pr*.

Juraj


On Monday 18 April 2005 19:51, tyzenhaus wrote:
> 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