|
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