locate [DATEINAME]
Der Befehl locate XYZ ist wesentlich schneller als find / -name XYZ
. Allerdings muß auch immer die Datenbank auf dem neuesten Stand sein.
Die Anwendung ist sehr einfach, so zeigt der Befehl
locate "*.ps"alle Dateien an, die mit ``.ps'' enden.
od -c /var/lib/locatedb | lessbetrachten können.
Mit dem Befehl updatedb wird die Datenbank auf den neuesten Stand gebracht.
updatedb [OPTIONEN]
Optionen | |
--localpaths |
Die lokalen Verzeichnisse werden mit eingebunden |
--netpaths |
Die Netzwerk-Verzeichnisse werden mit eingebunden |
--prunepaths LISTE |
Liste der ausgeschlossenen Verzeichnisse |
--output DATEI |
Name der Ausgabedatei |
Für eine generelle Konfiguration des Befehls kann eine Datei updatedb.conf benutzt werden.
In vielen Distributionen wird das Update automatisch durch ein mit cron gestartetes Skript durchgeführt. Bei SuSE 9.0 ist das Skript updatedb im Verzeichnis /etc/cron.daily verantwortlich. Die Datei sieht in einer leicht gekürzten Version so aus.
enterprise:~ # cat /etc/cron.daily/updatedb #!/bin/sh ... # Copyright (c) 2003 SuSE Linux AG, Nuernberg, Germany. # Author: Burchard Steinbild <bs@suse.de>, 1996 # Florian La Roche <florian@suse.de>, 1996 # paranoia settings umask 022 PATH=/sbin:/bin:/usr/sbin:/usr/bin export PATH # get information from /etc/rc.config if [ -f /etc/sysconfig/locate ] ; then . /etc/sysconfig/locate fi # update database for locate if [ -n "$RUN_UPDATEDB" -a "$RUN_UPDATEDB" = "yes" -a \ -x /usr/bin/updatedb ] ; then # avoid error messages from updatedb when using user nobody for find. cd / PARAMS="`test -n "$RUN_UPDATEDB_AS" && \ fgrep localuser /usr/bin/updatedb > /dev/null && \ echo --localuser=$RUN_UPDATEDB_AS`" PARAMS="$PARAMS `test -n "$UPDATEDB_PRUNEPATHS" && \ echo --prunepaths=\'$(eval echo $UPDATEDB_PRUNEPATHS)\'`" ... eval nice -n 19 /usr/bin/updatedb $PARAMS 2> /dev/null fi exit 0