Android

Find kommandoen i Linux

GPN18 - Moderne Kommandozeilen Werkzeuge

GPN18 - Moderne Kommandozeilen Werkzeuge

Indholdsfortegnelse:

Anonim

En af de mest almindelige operationer, når du arbejder på Linux, er at søge efter filer og mapper. På Linux-systemer er der flere kommandoer, der giver dig mulighed for at søge efter filer, hvor find og locate er de mest anvendte.

locate kommandoen er den hurtigste og enkleste måde at søge efter filer og mapper med deres navne.

I denne tutorial vil vi forklare, hvordan du bruger kommandoen locate .

Installation af locate (lokalisering af kommando ikke fundet)

Afhængig af distributionen og af, hvordan systemet blev leveret, er lokalitetspakken muligvis ikke installeret på dit Linux-system.

For at kontrollere, om lokalitetsværktøjet er installeret på dit system, skal du åbne din terminal, skrive locate og trykke på Enter . Hvis pakken er installeret, viser systemet locate: no pattern to search for specified , ellers vil du se noget som locate command not found .

Hvis locate ikke er installeret, kan du nemt installere det ved hjælp af din distro's pakkeadministrator.

Installer locate på Ubuntu og Debian

sudo apt update sudo apt install mlocate

Installer locate på CentOS og Fedora

sudo yum install mlocate

Hvordan locate arbejde?

locate kommandoen søger efter et givet mønster gennem en databasefil, der genereres af den updatedb kommando. De fundne resultater vises på skærmen, en pr. Linje.

Under installationen af ​​mlocate-pakken oprettes et cron-job, der kører den updatedb kommando hver 24 timer. Dette sikrer, at databasen opdateres regelmæssigt. For mere information om cron-jobbet, tjek filen /etc/cron.daily/mlocate .

Databasen kan opdateres manuelt ved at køre updatedb kommando som root eller bruger med sudo-privilegier:

sudo updatedb

Opdateringsprocessen vil tage nogen tid, afhængigt af antallet af filer og mapper og dit systems hastighed.

Filer oprettet efter databaseopdateringen vises ikke i lokaliseringsresultaterne.

Sammenlignet med den mere kraftfulde find kommando, der søger i filsystemet, fungerer placering meget hurtigere, men mangler mange funktioner og kan kun søge efter filnavnet.

Sådan bruges locate kommandoen

Syntaksen for locate er som følger:

locate PATTERN…

I sin mest basale form, når det bruges uden indstillinger, vil kommandoen locate udskrive den absolutte sti for alle filer og mapper, der matcher søgemønsteret, og som brugeren har læst tilladelse til.

For eksempel at søge efter en fil med navnet .bashrc skriver du:

locate.bashrc

Outputet inkluderer navnene på alle filer, der indeholder strengen .bashrc i deres navne:

/etc/bash.bashrc /etc/skel/.bashrc /home/linuxize/.bashrc /usr/share/base-files/dot.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc /usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

Filen /root/.bashrc vises ikke, fordi vi kørte kommandoen som en normal bruger, der ikke har adgangstilladelser til /root biblioteket.

Hvis resultatlisten er lang, for bedre læsbarhed kan du føre output til kommandoen less :

locate.bashrc | less

locate kommandoen accepterer også mønstre, der indeholder globende tegn såsom wildcard-tegnet * . Når mønsteret ikke indeholder globende tegn, leder kommandoen efter *PATTERN* , det er derfor, i det forrige eksempel blev alle filer, der indeholder søgemønsteret i deres navn, vist.

Jokertegnet er et symbol, der bruges til at repræsentere nul, en eller flere tegn. For eksempel at søge efter alle .md filer på systemet, du vil bruge:

locate *.md

For at begrænse søgeresultaterne skal du bruge indstillingen -n efterfulgt af det antal resultater, du vil have vist. For eksempel søger følgende kommando efter alle .py filer og viser kun 10 resultater:

locate -n 10 *.py

locate standard udfører store og små bogsager. Indstillingen -i ( --ignore-case ) fortæller locate at ignorere sag og køre --ignore-case søgning.

locate -i readme.md

/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md

Hvis du vil vise antallet af alle matchende poster, skal du bruge indstillingen -c (- --count ). Den følgende kommando returnerer antallet af alle filer, der indeholder .bashrc i deres navne:

locate -c.bashrc

6

Som standard tjekker locate ikke, om de fundne filer stadig findes på filsystemet. Hvis du slettede en fil efter den seneste databaseopdatering, hvis filen stemmer overens med søgemønsteret, vil den blive inkluderet i søgeresultaterne.

Hvis du kun vil vise navnene på de filer, der findes på det sted, hvor --existing køres, skal du bruge indstillingen -e ( --existing ). For eksempel returnerer følgende kun de eksisterende .json filer:

locate -e *.json

locate --regex -i "(.mp4|\.avi)"

Konklusion

locate kommandoen søger i filsystemet efter filer og mapper, hvis navn matcher et givet mønster. Kommandosyntaxen er let at huske, og resultaterne vises næsten øjeblikkeligt.

For mere information om alle tilgængelige muligheder for locate kommandotypen man locate i din terminal.

terminal lokalisere