Android

Zoek commando in linux

15 Useful Linux Commands Every Linux User Needs | Learning Terminal Part 1

15 Useful Linux Commands Every Linux User Needs | Learning Terminal Part 1

Inhoudsopgave:

Anonim

Een van de meest voorkomende bewerkingen bij het werken onder Linux is het zoeken naar bestanden en mappen. Op Linux-systemen zijn er verschillende opdrachten waarmee u naar bestanden kunt zoeken waarvan find en locate de meest gebruikte zijn.

De opdracht Zoeken is de snelste en eenvoudigste manier om naar bestanden en mappen te zoeken op basis van hun naam.

In deze zelfstudie leggen we uit hoe u de opdracht locate gebruiken.

Lokaliseren installeren (lokalisatieopdracht niet gevonden)

Afhankelijk van de distributie en de manier waarop het systeem is ingericht, kan het locatiepakket al dan niet vooraf op uw Linux-systeem zijn geïnstalleerd.

Om te controleren of het hulpprogramma Locate op uw systeem is geïnstalleerd, opent u uw terminal, typt u locate en drukt u op Enter . Als het pakket is geïnstalleerd, geeft het systeem locate: no pattern to search for specified , anders ziet u zoiets als locate command not found .

Als locate niet is geïnstalleerd, kunt u dit eenvoudig installeren met behulp van de pakketbeheerder van uw distro.

Install locate op Ubuntu en Debian

sudo apt update sudo apt install mlocate

Install locate op CentOS en Fedora

sudo yum install mlocate

Hoe vindt u werk

De opdracht locate zoekt naar een bepaald patroon via een databasebestand dat wordt gegenereerd door de opdracht updatedb . De gevonden resultaten worden op het scherm weergegeven, één per regel.

Tijdens de installatie van het mlocate-pakket wordt een cron-taak gemaakt die de updatedb opdracht elke 24 uur updatedb . Dit zorgt ervoor dat de database regelmatig wordt bijgewerkt. Raadpleeg het bestand /etc/cron.daily/mlocate voor meer informatie over de cron-taak.

De database kan handmatig worden bijgewerkt door de opdracht updatedb voeren als root of gebruiker met sudo-rechten:

sudo updatedb

Het updateproces duurt enige tijd, afhankelijk van het aantal bestanden en mappen en de snelheid van uw systeem.

Bestanden die na de database-update zijn gemaakt, worden niet weergegeven in de zoekresultaten.

In vergelijking met de krachtigere opdracht Zoeken die het bestandssysteem doorzoekt, werkt Lokaliseren veel sneller maar mist het veel functies en kan het alleen zoeken op bestandsnaam.

Hoe het locate te gebruiken

De syntaxis voor de opdracht locate is als volgt:

locate PATTERN…

In de meest basale vorm, wanneer gebruikt zonder opties, drukt de opdracht locate het absolute pad af van alle bestanden en mappen die overeenkomen met het zoekpatroon en waarvoor de gebruiker leesrechten heeft.

Als u bijvoorbeeld wilt zoeken naar een bestand met de naam .bashrc , typt u:

locate.bashrc

De uitvoer bevat de namen van alle bestanden die de tekenreeks .bashrc in hun namen:

/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

Het bestand /root/.bashrc wordt niet weergegeven omdat we de opdracht hebben uitgevoerd als een normale gebruiker die geen toegangsmachtigingen heeft voor de map /root .

Als de resultatenlijst lang is, kunt u voor een betere leesbaarheid de uitvoer naar de opdracht less :

locate.bashrc | less

De opdracht locate accepteert ook patronen die bolvormige tekens bevatten, zoals het jokerteken * . Wanneer het patroon geen globbing-tekens bevat, zoekt de opdracht naar *PATTERN* , daarom zijn in het vorige voorbeeld alle bestanden weergegeven die het zoekpatroon in hun naam bevatten.

Het jokerteken is een symbool dat wordt gebruikt om nul, een of meer tekens weer te geven. Als u bijvoorbeeld wilt zoeken naar alle .md bestanden op het systeem, gebruikt u:

locate *.md

Om de zoekresultaten te beperken, gebruikt u de optie -n gevolgd door het aantal resultaten dat u wilt weergeven. De volgende opdracht zoekt bijvoorbeeld naar alle .py bestanden en geeft slechts 10 resultaten weer:

locate -n 10 *.py

Lokaliseert standaard hoofdlettergevoelige zoekopdrachten. De optie -i ( --ignore-case ) tels locate om de case te negeren en niet-hoofdlettergevoelig te zoeken.

locate -i readme.md

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

Gebruik de optie -c ( --count ) om het aantal van alle overeenkomende vermeldingen weer te geven. De volgende opdracht retourneert het aantal bestanden met .bashrc in hun naam:

locate -c.bashrc

6

Standaard wordt niet gecontroleerd of de gevonden bestanden nog bestaan ​​op het bestandssysteem. Als u na de laatste database-update een bestand hebt verwijderd en het bestand overeenkomt met het zoekpatroon, wordt het opgenomen in de zoekresultaten.

Gebruik de optie -e ( --existing ) om alleen de namen van de bestanden weer te geven die bestaan ​​op het moment dat --existing wordt uitgevoerd. Het volgende zou bijvoorbeeld alleen de bestaande .json bestanden .json :

locate -e *.json

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

Conclusie

De opdracht find zoekt in het bestandssysteem naar bestanden en mappen waarvan de naam overeenkomt met een bepaald patroon. De syntaxis van de opdracht is gemakkelijk te onthouden en de resultaten worden vrijwel onmiddellijk getoond.

Voor meer informatie over alle beschikbare opties van het commando locatie type man locate in uw terminal.

terminal lokaliseren