|
Dagens kommando er locate. Locate bruges til at finde ud af, hvor givne filer på systemet ligger. Det kan f.eks. være at jeg har glemt hvor konfigurationen til sshd ligger. Kommandoen " |
/etc/init.d/sshd /etc/rc0.d/K20sshd /etc/rc2.d/S20sshd /etc/rc6.d/K20sshd /usr/local/etc/sshd_config /usr/local/man/man8/sshd.8 /usr/local/sbin/sshd /var/run/sshd.pid
|
Locate returnerer alle de filstier, som søgestrengen, her "sshd", indgår i. Pas på!!! Locate kan give meget output, hvis man får søgt på noget der forekommer mange gange. Prøv f.eks. "locate lib"... JokereDet er muligt at give jokere til "locate". F.eks. " |
/etc/init.d/sshd /usr/local/sbin/sshd
|
Så snart der er jokere involveret, returnerer locate kun de
filnavne, der matcher udtrykket. F.eks. tillader ovenstående ikke at
der står noget efter "sshd". Hvis jeg i stedet bruger " |
/etc/init.d/sshd /usr/local/etc/sshd_config /usr/local/man/man8/sshd.8 /usr/local/sbin/sshd /var/run/sshd.pid
|
Det er værd at bemærke at "/" ikke betragtes som specialtegn af locate, selvom det fungerer som skilletegn mellem et katalog- og et filnavn, Locate arbejder med strenge. F.eks. giver |
locate '*etc*sshd*'
|
alle linier hvor etc indgår før sshd: |
/etc/init.d/sshd /etc/rc0.d/K20sshd /etc/rc2.d/S20sshd /etc/rc6.d/K20sshd /usr/local/etc/sshd_config
|
Andre jokertegn:
Eksempler: |
$ locate '?etc*sshd*' /etc/init.d/sshd /etc/rc0.d/K20sshd /etc/rc2.d/S20sshd /etc/rc6.d/K20sshd $ locate '*ssh[a-f]' /etc/init.d/sshd /etc/rc0.d/K20sshd /etc/rc2.d/S20sshd /etc/rc6.d/K20sshd /usr/local/sbin/sshd $
TipHvis man får store mængder uddata fra en |
locate lib | less
|
Man kan søge i DatabasenLocate er hurtig fordi den ikke søger igennem hele disken efter filerne. Den kigger blot i en database. Det vil sige, at det ikke er sikkert at de filer der bliver fundet med locate, stadig findes på systemet. Ligeledes er det ikke sikkert, at filer man lige har installeret, bliver fundet. Locate arbejder udfra hvordan systemet så ud, sidst databasen blev opdateret. Normalt opdateres databasen i et program i /etc/cron.daily, som
køres automatisk en gang i døgnet. På Red Hat hedder programmet
Hvis man lige har lavet om på sit system, ved f.eks. at installere eller afinstallere programmer, og man gerne vil have opdateret database med det samme, kan programmet køres manuelt, hvis man har systemadministratorrettigheder: "su root -c /etc/cron.daily/slocate.cron" (på Red Hat). Det tager et stykke tid at opdatere databasen, men derefter vil locate igen virke efter hensigten. TilvalgDer findes få tilvalg til
Yderligere informationSe "man locate", "man updatedb", (og på Debian "man locatedb"). SlocateI nogle Linux distributioner (Red Hat 7.x) er locate erstattet af slocate. På Debian findes den i pakken slocate. Slocate er en mere sikker udgave af locate, der også gemmer filrettigheder i databasen, så brugere ikke får filer at se, de ikke har ret til at se. Tilvalg til
|