Android

Leta reda på kommandot i Linux

Shell Basics - echo and read - Linux Tutorial #1

Shell Basics - echo and read - Linux Tutorial #1

Innehållsförteckning:

Anonim

En av de vanligaste operationerna när du arbetar med Linux är att söka efter filer och kataloger. På Linux-system finns det flera kommandon som låter dig söka efter filer med att find och locate de mest använda.

locate kommandot är det snabbaste och enklaste sättet att söka efter filer och kataloger med deras namn.

I den här tutorialen kommer vi att förklara hur man använder locate .

Installera locate (lokalisera kommandot hittades inte)

Beroende på distributionen och hur systemet tillhandahölls kan lokaliseringspaketet kanske förinstalleras på ditt Linux-system.

För att kontrollera om locate är installerat på ditt system öppnar du din terminal, skriver locate och trycker på Enter . Om paketet är installerat kommer systemet att visa locate: no pattern to search for specified , annars ser du något som locate command not found .

Om locate inte är installerad kan du enkelt installera den med hjälp av paketansvarig för din distro.

Installera locate på Ubuntu och Debian

sudo apt update sudo apt install mlocate

Installera locate på CentOS och Fedora

sudo yum install mlocate

Hur locate arbete

locate söker efter ett givet mönster genom en databasfil som genereras av det updatedb kommandot. De hittade resultaten visas på skärmen, en per rad.

Under installationen av mlocate-paketet skapas ett cron-jobb som kör det updatedb kommandot var 24: e timme. Detta säkerställer att databasen uppdateras regelbundet. För mer information om cron-jobbet, kolla filen /etc/cron.daily/mlocate .

Databasen kan uppdateras manuellt genom att köra updatedb kommando som root eller användare med sudo-privilegier:

sudo updatedb

Uppdateringsprocessen kommer att ta lite tid, beroende på antalet filer och kataloger och systemets hastighet.

Filer som skapats efter databasuppdateringen visas inte i sökresultaten.

Jämfört med det kraftfullare sökkommandot som söker i filsystemet fungerar locate mycket snabbare men saknar många funktioner och kan bara söka efter filnamnet.

Hur man använder locate

Syntaxen för locate är som följer:

locate PATTERN…

I dess mest grundläggande form, när det används utan några alternativ, kommer kommandot locate att skriva ut den absoluta sökvägen för alla filer och kataloger som matchar sökmönstret och som användaren har lästillstånd för.

Till exempel för att söka efter en fil med namnet .bashrc du:

locate.bashrc

Utgången kommer att innehålla namnen på alla filer som innehåller strängen .bashrc i deras namn:

/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

/root/.bashrc visas inte eftersom vi körde kommandot som en normal användare som inte har åtkomstbehörigheter till /root katalogen.

Om resultatlistan är lång, för bättre läsbarhet kan du leda utdata till kommandot less :

locate.bashrc | less

locate kommandot accepterar också mönster som innehåller globbande tecken som jokertecken * . När mönstret inte innehåller några glödande tecken söker kommandot efter *PATTERN* , varför det i föregående exempel alla filer som innehåller sökmönstret i deras namn visades.

Vildkortet är en symbol som används för att representera noll, en eller flera tecken. Till exempel för att söka efter alla .md filer i systemet du skulle använda:

locate *.md

För att begränsa sökresultaten använder du alternativet -n följt av antalet resultat du vill visas. Till exempel söker följande kommando efter alla .py filer och visar endast 10 resultat:

locate -n 10 *.py

Som standard utför locate sökningar som är skiftlägeskänsliga. --ignore-case -i ( --ignore-case ) anger locate att ignorera ärenden och köra ärende-känslig sökning.

locate -i readme.md

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

--count alternativet -c ( --count ) för att visa antalet matchande poster. Följande kommando returnerar antalet filer som innehåller .bashrc i deras namn:

locate -c.bashrc

6

Som standard kontrollerar inte inte om de hittade filerna fortfarande finns i filsystemet. Om du raderade en fil efter den senaste databasuppdateringen om filen matchar sökmönstret kommer den att inkluderas i sökresultaten.

--existing alternativet -e (- --existing ) för att bara visa namnen på de filer som finns vid locate tiden. Till exempel returnerar följande endast de befintliga .json filerna:

locate -e *.json

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

Slutsats

Kommandot locate söker i filsystemet efter filer och kataloger vars namn matchar ett givet mönster. Kommandosyntaxen är lätt att komma ihåg och resultaten visas nästan direkt.

För mer information om alla tillgängliga alternativ för locate man locate i din terminal.

terminal lokalisera