Locate: Unterschied zwischen den Versionen

Aus Foxwiki
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


= Beschreibung =
= Beschreibung =
Hierbei wird aber nicht das gesamte Datenverzeichnis durchsucht (wie bei find), sondern eine Datenbank, die zuvor angelegt wurde. Diese wird regelmäßig aktualisiert, damit locate immer die korrekten Orte anzeigt, an denen sich die Dateien befinden und somit neue Dateien und Datenbewegungen erfasst werden.
* Hierbei wird aber nicht das gesamte Datenverzeichnis durchsucht (wie bei find), sondern eine Datenbank, die zuvor angelegt wurde.  
 
* Diese wird regelmäßig aktualisiert, damit locate immer die korrekten Orte anzeigt, an denen sich die Dateien befinden und somit neue Dateien und Datenbewegungen erfasst werden.
Der Vorteil diese Methode besteht darin, dass das Durchsuchen der Datenbank sehr schnell geht, und die Suchergebnisse praktisch sofort zur Verfügung stehen. Allerdings muss man beachten, dass die Verzeichnisse (und deren Unterverzeichnisse) /tmp, /var/spool und /media von Haus aus nicht indexiert werden, da sich die Inhalte dieser Verzeichnisse permanent ändern.
* Der Vorteil diese Methode besteht darin, dass das Durchsuchen der Datenbank sehr schnell geht, und die Suchergebnisse praktisch sofort zur Verfügung stehen.  
 
* Allerdings muss man beachten, dass die Verzeichnisse (und deren Unterverzeichnisse) /tmp, /var/spool und /media von Haus aus nicht indexiert werden, da sich die Inhalte dieser Verzeichnisse permanent ändern.
=  Installation  =


= Installation =
Locate gibt es in verschiedenen Varianten. Empfohlen wird das Paket
Locate gibt es in verschiedenen Varianten. Empfohlen wird das Paket


*mlocate
# '''apt install mlocate'''
 
Das bei einer Standard-Installation von Ubuntu vorinstalliert ist. Falls das Paket nicht installiert ist, kann man dies mit der Paketverwaltung nachholen.


= Syntax =


=  Aktualisierung der Datenbank  =
=  Aktualisierung der Datenbank  =
* Aktuelle Änderungen am Dateibestand werden durch locate nicht gefunden, da ja nur eine Datenbank durchsucht wird.
* Hat man also erst kürzlich Daten manipuliert und möchte sie wiederfinden, so verwendet man entweder [[Linux:Befehl:find|find]] oder man stößt die Aktualisierung der Datenbank von Hand an und wartet je nach Größe des Dateisystems ein bisschen.
sudo updatedb


Aktuelle Änderungen am Dateibestand werden durch locate nicht gefunden, da ja nur eine Datenbank durchsucht wird. Hat man also erst kürzlich Daten manipuliert und möchte sie wiederfinden, so verwendet man entweder [[Linux:Befehl:find|find]] oder man stößt die Aktualisierung der Datenbank von Hand an und wartet je nach Größe des Dateisystems ein bisschen. Dies geht mit folgendem Befehl:
sudo updatedb
Weitere Benutzereingriffe sind normalerweise nicht notwendig, da mittels /etc/cron.daily/mlocate eine automatische Aktualisierung einmal pro Tag stattfindet.
Weitere Benutzereingriffe sind normalerweise nicht notwendig, da mittels /etc/cron.daily/mlocate eine automatische Aktualisierung einmal pro Tag stattfindet.


= Benutzung  =
= Anwendungen =
 
Die Benutzung von "locate" ist recht einfach, man ruft in einem Terminal den Befehl zusammen mit dem Suchbegriff auf.
Die Benutzung von "locate" ist recht einfach, man ruft in einem Terminal den Befehl zusammen mit dem Suchbegriff auf.
  locate Suchbegriff  
  locate Suchbegriff  
Zu beachten ist hierbei, dass zwischen Groß- und Kleinschreibung unterschieden wird. Dies kann mit dem Schalter -i übergangen werden, sodass keine Unterscheidung mehr gemacht wird.
Zu beachten ist hierbei, dass zwischen Groß- und Kleinschreibung unterschieden wird. Dies kann mit dem Schalter -i übergangen werden, sodass keine Unterscheidung mehr gemacht wird.
  locate -i Suchbegriff  
  locate -i Suchbegriff  
Weitere Optionen können der [https://wiki.ubuntuusers.de/man/ Manpage] entnommen werden.


=  Verzeichnisse aus der Datenbank ausschließen  =
=  Verzeichnisse aus der Datenbank ausschließen  =
* Sollen noch weitere Verzeichnisse aus dem Index ausgeschlossen werden (z.B. ein Backup-Verzeichnis), so muss die Datei '''/etc/updatedb.conf''' mit Root-Rechten bearbeitet werden. Die von der Indexierung auszuschließenden Verzeichnisse müssen der Variablen PRUNEPATHS angehängt werden.
* Ein gutes Beispiel hierfür ist ein Backup-Verzeichnis.
* Zum einen wird (z.B. bei der Nutzung von [https://wiki.ubuntuusers.de/Back_In_Time/ Back In Time]) jede Datei sonst mehrmals aufgelistet (das Original und jedes Backup), zum anderen muss sonst beim Erstellen der Datenbank das ganze Backup-Verzeichnis mit durchsucht werden, was Zeit kostet und CPU- sowie Festplattenlast erzeugt.


Sollen noch weitere Verzeichnisse aus dem Index ausgeschlossen werden (z.B. ein Backup-Verzeichnis), so muss die Datei '''/etc/updatedb.conf''' mit Root-Rechten bearbeitet werden. Die von der Indexierung auszuschließenden Verzeichnisse müssen der Variablen PRUNEPATHS angehängt werden.
Ist das Verzeichnis z.B. '''/mnt/backup''', so lautet die entsprechende Zeile (sofern sonst nichts zur Vorgabe hinzugefügt wurde):
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /mnt/backup"


Ein gutes Beispiel hierfür ist ein Backup-Verzeichnis. Zum einen wird (z.B. bei der Nutzung von [https://wiki.ubuntuusers.de/Back_In_Time/ Back In Time]) jede Datei sonst mehrmals aufgelistet (das Original und jedes Backup), zum anderen muss sonst beim Erstellen der Datenbank das ganze Backup-Verzeichnis mit durchsucht werden, was Zeit kostet und CPU- sowie Festplattenlast erzeugt. Ist das Verzeichnis z.B. '''/mnt/backup''', so lautet die entsprechende Zeile (sofern sonst nichts zur Vorgabe hinzugefügt wurde):
PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /mnt/backup"
Nach der nächsten Aktualisierung des Indexes findet locate dann keine Dateien und Ordner unterhalb dieser Verzeichnisse mehr.
Nach der nächsten Aktualisierung des Indexes findet locate dann keine Dateien und Ordner unterhalb dieser Verzeichnisse mehr.


Quellen  =
= Links =
== Dateien ==
 
== Man-Pages ==
 
== Intern ==
  # [[Linux:Befehl:updatedb]]
 
== Weblinks ==
# https://wiki.ubuntuusers.de/locate
# https://wiki.ubuntuusers.de/locate


[[Category:Linux:Suchen]]
[[Category:Linux:Suchen]]
[[Category:Linux:Befehl]]

Version vom 12. Februar 2022, 23:19 Uhr

locate ist ein Programm, mit dessen Hilfe man auf der Kommandozeile nach Dateien suchen kann.

Beschreibung

  • Hierbei wird aber nicht das gesamte Datenverzeichnis durchsucht (wie bei find), sondern eine Datenbank, die zuvor angelegt wurde.
  • Diese wird regelmäßig aktualisiert, damit locate immer die korrekten Orte anzeigt, an denen sich die Dateien befinden und somit neue Dateien und Datenbewegungen erfasst werden.
  • Der Vorteil diese Methode besteht darin, dass das Durchsuchen der Datenbank sehr schnell geht, und die Suchergebnisse praktisch sofort zur Verfügung stehen.
  • Allerdings muss man beachten, dass die Verzeichnisse (und deren Unterverzeichnisse) /tmp, /var/spool und /media von Haus aus nicht indexiert werden, da sich die Inhalte dieser Verzeichnisse permanent ändern.

Installation

Locate gibt es in verschiedenen Varianten. Empfohlen wird das Paket

# apt install mlocate

Syntax

Aktualisierung der Datenbank

  • Aktuelle Änderungen am Dateibestand werden durch locate nicht gefunden, da ja nur eine Datenbank durchsucht wird.
  • Hat man also erst kürzlich Daten manipuliert und möchte sie wiederfinden, so verwendet man entweder find oder man stößt die Aktualisierung der Datenbank von Hand an und wartet je nach Größe des Dateisystems ein bisschen.
sudo updatedb 

Weitere Benutzereingriffe sind normalerweise nicht notwendig, da mittels /etc/cron.daily/mlocate eine automatische Aktualisierung einmal pro Tag stattfindet.

Anwendungen

Die Benutzung von "locate" ist recht einfach, man ruft in einem Terminal den Befehl zusammen mit dem Suchbegriff auf.

locate Suchbegriff 

Zu beachten ist hierbei, dass zwischen Groß- und Kleinschreibung unterschieden wird. Dies kann mit dem Schalter -i übergangen werden, sodass keine Unterscheidung mehr gemacht wird.

locate -i Suchbegriff 

Verzeichnisse aus der Datenbank ausschließen

  • Sollen noch weitere Verzeichnisse aus dem Index ausgeschlossen werden (z.B. ein Backup-Verzeichnis), so muss die Datei /etc/updatedb.conf mit Root-Rechten bearbeitet werden. Die von der Indexierung auszuschließenden Verzeichnisse müssen der Variablen PRUNEPATHS angehängt werden.
  • Ein gutes Beispiel hierfür ist ein Backup-Verzeichnis.
  • Zum einen wird (z.B. bei der Nutzung von Back In Time) jede Datei sonst mehrmals aufgelistet (das Original und jedes Backup), zum anderen muss sonst beim Erstellen der Datenbank das ganze Backup-Verzeichnis mit durchsucht werden, was Zeit kostet und CPU- sowie Festplattenlast erzeugt.

Ist das Verzeichnis z.B. /mnt/backup, so lautet die entsprechende Zeile (sofern sonst nichts zur Vorgabe hinzugefügt wurde):

PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /mnt/backup"

Nach der nächsten Aktualisierung des Indexes findet locate dann keine Dateien und Ordner unterhalb dieser Verzeichnisse mehr.

Links

Dateien

Man-Pages

Intern

# Linux:Befehl:updatedb

Weblinks

  1. https://wiki.ubuntuusers.de/locate