Поиск файлов в Linux и Unix — find, grep, ack, ripgrep
Innholdsfortegnelse:
- Installering av
locate
(lokalisering av kommando ikke funnet) - Installer
locate
på Ubuntu og Debian - Installer
locate
på CentOS og Fedora - Hvordan
locate
arbeid - Slik bruker du
locate
kommandoen - Konklusjon
En av de vanligste operasjonene når du jobber med Linux er å søke etter filer og kataloger. På Linux-systemer er det flere kommandoer som lar deg søke etter filer med
find
og
locate
som de mest brukte.
locate
kommandoen er den raskeste og enkleste måten å søke etter filer og kataloger med deres navn.
I denne opplæringen vil vi forklare hvordan du bruker
locate
kommandoen.
Installering av
locate
(lokalisering av kommando ikke funnet)
Avhengig av distribusjonen og hvordan systemet ble gitt, kan det hende at lokaliseringspakken er forhåndsinstallert på Linux-systemet ditt.
For å sjekke om
locate
er installert på systemet ditt, åpner du terminalen, skriver
locate
og trykker
Enter
. Hvis pakken er installert, vil systemet vise
locate: no pattern to search for specified
, ellers vil du se noe som
locate command not found
.
Hvis
locate
ikke er installert, kan du enkelt installere det ved å bruke pakkehåndtereren til din distro.
Installer
locate
på Ubuntu og Debian
sudo apt update
sudo apt install mlocate
Installer
locate
på CentOS og Fedora
Hvordan
locate
arbeid
locate
søker etter et gitt mønster gjennom en databasefil som genereres av den
updatedb
kommandoen. De funnet resultatene vises på skjermen, en per linje.
Under installasjonen av mlocate-pakken opprettes en cron-jobb som kjører den
updatedb
kommandoen hver 24. time. Dette sikrer at databasen regelmessig blir oppdatert. For mer informasjon om cron-jobben, sjekk filen
/etc/cron.daily/mlocate
.
Databasen kan oppdateres manuelt ved å kjøre
updatedb
kommando som root eller bruker med sudo-rettigheter:
sudo updatedb
Oppdateringsprosessen vil ta litt tid, avhengig av antall filer og kataloger og hastigheten på systemet.
Filer opprettet etter databaseoppdateringen vises ikke i søkeresultatene.
Sammenlignet med den kraftigere funnkommandoen som søker i filsystemet, fungerer lokaliteten mye raskere, men mangler mange funksjoner og kan bare søke etter filnavnet.
Slik bruker du
locate
kommandoen
Syntaksen for
locate
er som følger:
locate PATTERN…
I den mest grunnleggende formen, når den brukes uten noen alternativer, vil
locate
skrive ut den absolutte banen til alle filer og kataloger som samsvarer med søkemønsteret og som brukeren har lest tillatelse til.
For å søke etter en fil som heter
.bashrc
du for eksempel:
locate.bashrc
Utgangen vil inneholde navnene på alle filene som inneholder strengen
.bashrc
i deres navn:
/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 kjørte kommandoen som en normal bruker som ikke har tilgangstillatelser til
/root
katalogen.
Hvis resultatlisten er lang, for bedre lesbarhet kan du føre utdataene til kommandoen
less
:
locate.bashrc | less
locate
kommandoen godtar også mønstre som inneholder globende tegn som jokertegnet
*
. Når mønsteret ikke inneholder globende tegn kommandoen søker etter
*PATTERN*
, er det derfor i forrige eksempel ble alle filene som inneholder søksmønsteret i navnene deres vist.
Jokertegnet er et symbol som brukes til å representere null, ett eller flere tegn. For å søke etter alle
.md
filer på systemet, vil du for eksempel bruke:
locate *.md
For å begrense søkeresultatene bruker du alternativet
-n
etterfulgt av antall resultater du vil vises. For eksempel vil følgende kommando søke etter alle
.py
filer og vise bare 10 resultater:
locate -n 10 *.py
Finn som standard ut fra store og små bokstaver. Alternativet
-i
(
--ignore-case
) angir
locate
å ignorere sak og kjøre sak-ufølsom søk.
locate -i readme.md
/home/linuxize/p1/readme.md /home/linuxize/p2/README.md /home/linuxize/p3/ReadMe.md
Hvis du vil vise antall samsvarende oppføringer, bruker du alternativet
-c
(-
--count
). Følgende kommando vil returnere antallet alle filer som inneholder
.bashrc
i deres navn:
locate -c.bashrc
6
Som standard sjekker ikke ikke om de funnet filene fremdeles eksisterer i filsystemet. Hvis du slettet en fil etter den siste databaseoppdateringen, hvis filen samsvarer med søksmønsteret, vil den bli inkludert i søkeresultatene.
Bruk alternativet
-e
(-
--existing
) for å vise bare navnene på filene som eksisterer på det tidspunktet det kjøres. For eksempel vil følgende bare returnere de eksisterende
.json
filene:
locate -e *.json
locate --regex -i "(.mp4|\.avi)"
Konklusjon
locate
kommandoen søker i filsystemet etter filer og kataloger hvis navn stemmer overens med et gitt mønster. Kommandosyntaxen er lett å huske, og resultatene vises nesten umiddelbart.
For mer informasjon om alle tilgjengelige alternativer for
locate
kommandotypen
man locate
i terminalen.
Du kommandoen i linux

Du-kommandoen, forkortelse for diskbruk, rapporterer estimert mengde diskplass brukt av gitte filer eller kataloger. Det er praktisk nyttig for å finne filer og kataloger som tar store mengder diskplass.
Slik sjekker du diskplass i Linux ved hjelp av df-kommandoen

Hvor mye plass har jeg igjen på harddisken min? På Linux-baserte systemer kan du bruke df-kommandoen til å få en detaljert rapport om systemets diskplassbruk.
Hvordan bruke linux sleep-kommandoen til å pause et bash-skript

Sleep er et kommandolinjeverktøy som lar deg stoppe anropsprosessen i en spesifisert tid. I denne opplæringen vil vi vise deg hvordan du bruker Linux-søvnkommandoen.