Locate

Från Wiki.linux.se
Version från den 25 augusti 2024 kl. 14.40 av Admin (diskussion | bidrag) (→‎Källor)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

locate - Hitta filer snabbt med en databas

Kommandot `locate` används för att snabbt hitta filer genom att söka i en förbyggd databas.

Syntax

locate [ALTERNATIV]... MÖNSTER...

Beskrivning

Kommandot `locate` söker efter filer och kataloger som matchar angivna mönster. Det använder en förbyggd databas över filsystemet, vilket gör sökningarna mycket snabbare jämfört med kommandot `find`.

Alternativ

Kommandot `locate` stöder många alternativ som kan användas för att justera sökningen:

  • `-A, --all` - Visa endast de poster som matchar alla angivna mönster.
  • `-b, --basename` - Matcha endast basnamnet på filer (ignorerar sökvägen).
  • `-c, --count` - Skriv endast ut antalet poster som matchar.
  • `-d, --database DBPATH` - Använd den angivna databasen istället för standarddatabasen.
  • `-e, --existing` - Visa endast poster för filer som existerar vid söktillfället.
  • `-i, --ignore-case` - Ignorera skiftlägeskänslighet vid sökning.
  • `-l, --limit N` - Begränsa antalet matchande poster till N.
  • `-P, --nofollow, --physical` - Följ inte symboliska länkar.
  • `-r, --regexp REGEXP` - Tolka mönster som reguljära uttryck.
  • `-S, --statistics` - Visa statistik om databasen.
  • `-q, --quiet` - Undertryck felmeddelanden om icke-existerande filer.
  • `-0, --null` - Separera utdata med null-tecken istället för ny rad.
  • `--help` - Visa hjälpmeddelandet och avsluta.
  • `--version` - Visa versionsinformation och avsluta.

Exempel

Här är några praktiska exempel som visar hur du kan använda `locate`-kommandot:

  • För att hitta alla filer som innehåller ordet "fil" i deras namn:

locate fil

  • För att hitta alla filer som matchar ett specifikt mönster, t.ex. alla textfiler:

locate "*.txt"

  • För att hitta alla filer med ett specifikt basnamn:

locate -b "\.bashrc"

  • För att ignorera skiftlägeskänslighet vid sökning:

locate -i fil

  • För att visa antalet poster som matchar ett mönster:

locate -c fil

  • För att använda en specifik databas:

locate -d /väg/till/databas fil

  • För att tolka mönstret som ett reguljärt uttryck:

locate -r "^/usr.*bin/gcc"

  • För att visa statistik om databasen:

locate -S

  • För att begränsa antalet resultat till 10:

locate -l 10 fil

Skillnader mellan macOS och Linux

Det finns några viktiga skillnader att tänka på när man använder `locate`-kommandot på macOS jämfört med Linux:

  • **Standardinstallationer**: På de flesta Linux-distributioner är `locate` en del av GNU findutils eller mlocate, medan macOS använder en version som är en del av BSD locate. Detta innebär att vissa alternativ och beteenden kan skilja sig åt.
  • **Databasuppdatering**: På Linux används vanligtvis kommandot `updatedb` för att uppdatera databasen som `locate` använder. På macOS uppdateras databasen automatiskt genom systemets underhållsuppgifter.
  • **Databasplats**: Standardplatsen för databasen kan skilja sig. På Linux är det vanligtvis `/var/lib/mlocate/mlocate.db` eller `/var/cache/locate/locatedb`. På macOS är det `/var/db/locate.database`.
  • **Prestanda och optimering**: Linux och macOS kan ha olika prestandakarakteristika beroende på hur deras filsystem och sökalgoritmer är implementerade. macOS använder HFS+ eller APFS, medan Linux vanligtvis använder ext4, Btrfs, XFS eller andra filsystem. Detta kan påverka hur snabbt `locate`-kommandot utför sina sökningar.
  • **Flaggor och funktioner**: Vissa GNU-specifika flaggor och funktioner kan saknas i BSD-versionen av `locate` som används på macOS. Till exempel kan vissa avancerade sökalternativ som `-A` (matcha alla mönster) vara specifika för GNU locate.

Här är några exempel som visar skillnaderna:

  • På Linux kan du använda `updatedb` för att uppdatera databasen:

sudo updatedb

På macOS sker detta automatiskt eller kan göras manuellt med:

sudo /usr/libexec/locate.updatedb

  • Användning av `-d` alternativet på Linux och macOS kan skilja sig:

locate -d /path/to/locate.db fil

På macOS måste du vara säker på att du har rätt databas och att den är uppdaterad.
  • För att söka utan att följa symboliska länkar på Linux:

locate -P fil

Detta kan skilja sig på macOS beroende på versionen av locate.

Det är alltid bra att konsultera `man`-sidan för `locate` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga.

Felsökning

Om du får ett felmeddelande när du använder `locate`, kontrollera följande:

  • Att databasen är uppdaterad. Om databasen är föråldrad kan den sakna nyligen tillagda filer.
  • Att du har rättigheter att läsa databasen.
  • Att syntaxen för ditt uttryck är korrekt. Kontrollera att du använder korrekta alternativ och parametrar.

Se även

  • find - Sök efter filer och kataloger i realtid.
  • updatedb - Uppdatera databasen som används av locate.
  • grep - Sök efter mönster i filer.
  • xargs - Bygg och kör kommandon från standardinmatning.

Källor

Sidslut


Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.