[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: FIND.



Anders Holmberg <anders@canit.se> writes:

> Hej Debianers!
> När jag använder find fungerar det inte alltid som jag vill.
> Antagligen beror det på min lathet.
> Dvs att jag inte orkat läsa manualsidorna till find.
> Jag försökte följande sträng men det ville sig inte als.
> find / -name *.log

Det här är en vanlig fälla och enkel att besvara.

Innan paramerar skickas till programmet tolkas de av skalet, vanligen
bash, och *.log expanderas till all filer som matchar *.log. Dvs, i en
katalog som innehåller filerna a.log, b.log och c.log blir
kommandoraden som find(1) ser *inte* "/ -name *.log" utan "/ -name
a.log b.log c.log". Sätt alltid ' eller " runt "ord" som innehåller
{, }, [, ], * eller ? - alternativt sätt \ framför det tecken du inte
vill att skalet skall expandera.

Om det inte finns några .log-filer i aktuell katalog får find
kommandoraden "/ -name *.log" - därför fungerar det ibland och ibland
inte.

Testa med hjälp av echo(1) om du är osäker på om hur en kommandorad
kommer att tolkas.

Jag hoppas att det klarnade litegrann.

-- 
( GnuPG/PGP key @ www.dtek.chalmers.se/~d4jonas/  !     Wei Wu Wei     )
( Meaning of U2 Lyrics, Roleplaying, Emacs/Gnus   !  To Do Without Do  )



Reply to: