Zoekopties
Linux biedt diverse opdrachtregelcommando's waarmee het systeem direct vanuit de terminal kan worden doorzocht.
Bestandssysteem doorzoeken
find is een opdrachtregelprogramma waarmee naar bestanden kan worden gezocht.
Het programma wordt geopend met de volgende syntax:
find [OPTIES] [MAP] [ZOEKVOORWAARDE][ACTIES]
De aangegeven map geldt als startmap van de zoekopdracht. Doorzocht worden dus de startmap en diens submappen. Als er geen map wordt aangegeven, start find de zoekopdracht vanuit de huidige werkmap.
Met opties kun je zoekcriteria en acties definiëren. Standaard is de actie –print ingesteld: weergave van de volledige bestandsnaam van alle zoekcriteria in de standaardweergave (in de regel de terminal).
Gangbare zoekcriteria zijn de bestandsnaam (-naam BESTANDSNAAM[SUFFIX]), een gebruikersnaam (-user GEBRUIKERSNAAM), de bestandsgrootte (-size n[cwbkMG]), het toegangstijdstip in dagen (-atime [+-]n) of het wijzigingstijdstip in dagen (-mtime [+-]n).
Bij het zoeken naar bestandsnamen kunnen metatekens en plaatshouders worden gebruikt. Plaats deze tussen aanhalingstekens om een interpretatie door de shell te verbieden.
Voorbeeld: find /tmp -name “*.odt” -mtime -3 -size +20k
Als startmap is de map /tmp gedefinieerd. Het opdrachtregelprogramma find geeft alle bestanden die de bestandsextensie .odt hebben, groter zijn dan 20k en minder dan 3 dagen geleden voor het laatst werden gewijzigd, weer in de standaardweergave.
Overige opties voor het zoekcommando find vind je in de gebruiksaanwijzingspagina bij het programma.
Tekstbestanden doorzoeken
Met het commando grep (kort voor global regular expression print) kunnen tekstbestanden (bijvoorbeeld logbestanden) worden doorzocht. Als zoekpatroon kunnen willekeurige tekenreeksen of reguliere expressies worden gebruikt.
Gebruik grep volgens deze syntax:
grep [OPTIES] ZOEKPATROON [BESTAND(EN)]
Als grep een string vindt die overeenkomt met het zoekpatroon, wordt het regelnummer met de bijbehorende bestandsnaam weergegeven in de terminal.
In de regel wordt grep op alle bestanden in de huidige map toegepast. Met de optie –r kan een recursieve zoekopdracht in submappen worden verricht.
Bestandsindex doorzoeken
Ook met het opdrachtregelprogramma locate kan via de terminal naar bestanden worden gezocht. Maar anders dan bij find wordt daarbij niet de bestandsmap doorzocht, maar een speciaal daarvoor aangemaakte regelmatig bijgewerkte database. Daardoor levert locate beduidend snellere zoekresultaten dan find.
Om in de database te zoeken naar een bepaald bestand open je locate volgens het volgende schema:
locate ZOEKPATROON
Het zoekpatroon kan metatekens zoals plaatshouders (*) bevatten. Plaats dergelijke zoekpatronen tussen aanhalingstekens om een interpretatie door de shell te verbieden.
In het volgende voorbeeld toont locate alle bestanden met de extensie .png.
locate “*.png”
Het commando locate is hoofdlettergevoelig. Om verschillen tussen grote en kleine letters bij het zoeken te omzeilen, gebruik je de optie –i.
Als database voor de indexering van bestanden fungeert het bestand /var/lib/locatedb. Dit bevat een lijst van alle bestanden van het bestandssysteem op een bepaald tijdstip en moet regelmatig worden bijgewerkt. Gebruik daarvoor het commando updatedb.
Bestandsindex actualiseren
Zoeken via locate is alleen betrouwbaar als het bestand /var/lib/locatedb continu wordt bijgewerkt. Met het commando updatedb kun je de database handmatig bijwerken. Houd er rekening mee dat je hiervoor rootrechten nodig hebt:
updatedb
Binaire code, broncode of gebruiksaanwijzingspagina’s van programma’s zoeken
Met het commando whereis lokaliseer je de binaire code, broncode of gebruiksaanwijzingspagina’s van gesorteerde programma’s.
De algemene syntax van het commando luidt:
whereis [OPTIES] PROGRAMMA
Voorbeeld:
whereis firefox
Als output schrijft whereis de paden naar de gevonden bestanden, gescheiden door spaties, in de terminal:
firefox: /usr/bin/firefox/ usr/lib/firefox/ usr/share/man/man1/firefox.1.gz
Met opties kan de zoekopdracht worden beperkt tot bepaalde bestandstypes of mappen.
Binaire bestanden van programma’s bepalen
Als je een binair bestand van een programma wilt bepalen, gebruik je het commando which volgens het volgende schema om het pad in de terminal weer te geven.
which [OPTIES] PROGRAMMA
Voorbeeld: which firefox
Output: /usr/bin/firefox
In de standaardmodus geeft which het eerste bestand weer dat wordt gevonden. Gebruik de optie –a om alle bestanden te tonen die voldoen aan het zoekcriterium.