Als het gaat om het vinden van bestanden en mappen efficiënt op een Linux-systeem, zijn er twee hoofdcen de opdrachten die beschikbaar zijn: find en locate. Beide hebben hun eigen sterke punten en toepassingsgevallen. In deze gids leer je hoe je deze opdrachten kunt gebruiken om snel en gericht de benodigde gegevens te vinden, of het nu in de home-directory of op de gehele harde schijf is.
Belangrijkste bevindingen
- locate is sneller omdat het een database gebruikt, maar mogelijk niet actueel is.
- find zoekt direct op de harde schijf en is altijd actueel, maar kan trager zijn.
- Beide opdrachten bieden verschillende opties om je zoekopdrachten te verfijnen.
Stap-voor-stap gids
1. Een eerste overzicht: locate
Begin je zoekopdracht met de opdracht locate. Dit is vooral eenvoudig als je de exacte naam of een deel van de naam van het bestand kent. Laten we zeggen dat je het bestand "Zon" wilt vinden. Ga naar je rootdirectory en typ de volgende opdracht:
locate Zon
Met deze opdracht doorzoekt locate alle vermeldingen in de database en vermeldt het de bestanden die de zoekterm "Zon" bevatten.

2. Negeer hoofdletters en kleine letters
Wil je bij je zoekopdracht de hoofdletters en kleine letters negeren? Dan kun je de optie -i gebruiken:
locate -i zon
Zo krijg je een lijst die zowel "Zon" als "zon" bevat.

3. Precisie door reguliere expressies
Als je een nauwkeurigere zoekopdracht wilt uitvoeren, kun je ook reguliere expressies gebruiken met locate. Bijvoorbeeld, om alleen exact naar "ls" te zoeken, kun je de optie -b in combinatie met beschermde haakjes gebruiken:
locate -b '/ls'
Dit zorgt ervoor dat je alleen resultaten krijgt die exact "ls" zijn.

4. Database bijwerken
Als je een nieuw bestand hebt aangemaakt en wilt zorgen dat locate het vindt, moet je de database bijwerken. Dit doe je met de opdracht:
sudo updatedb
Deze opdracht update de database en brengt deze op de nieuwste versie.

5. Gebruik van find
De find-opdracht is bijzonder nuttig als je meer specifieke criteria voor je zoekopdracht wilt definiëren. Om bijvoorbeeld in de home-directory naar een bestand met de naam "xyz" te zoeken, kun je de volgende opdracht gebruiken:
find ~/ -name 'xyz'
Dit doorzoekt alleen de home-directory naar "xyz".

6. Filtreren op bestands type
Om alleen naar bepaalde bestandstypen te zoeken, kun je de optie -type gebruiken. Bijvoorbeeld, om alleen mappen te vinden:
find /var/log -type d
Met deze opdracht vermeld je alle mappen in de map /var/log.

7. Bestanden op grootte zoeken
Als je bestanden wilt zoeken op basis van hun grootte, kun je de optie -size gebruiken. Bijvoorbeeld, om bestanden groter dan 1 MB te vinden:
find / -type f -size +1M
Deze opdracht zoekt op het hele systeem naar bestanden die groter zijn dan 1 megabyte.

8. Bestanden in een bepaalde periode vinden
Je kunt ook zoeken naar bestanden die binnen een bepaalde tijd zijn gewijzigd. Bijvoorbeeld, als je bestanden wilt zoeken die in de afgelopen 48 uur zijn gewijzigd, gebruik je:
find / -type f -mtime -2
Hier staat "-mtime -2" voor bestanden die in de afgelopen twee dagen zijn gewijzigd.

9. Combinaties van zoekcriteria
Het combineren van meerdere zoekcriteria verbetert de precisie van je aanvragen. Je kunt tegelijkertijd filteren op bestands type en laatste gewijzigde datum:
find /opt -type f -mtime -1
Zo vind je alle bestanden in de map /opt die in de afgelopen 24 uur zijn gewijzigd.

10. Conclusie over het zoeken naar bestanden
Met de opdrachten find en locate ben je goed uitgerust om efficiënt bestanden en mappen op je Linux-systeem te vinden. Je kunt kiezen tussen snelheid en actuele gegevensbasis, afhankelijk van je behoeften.
Samenvatting - Bestanden en mappen zoeken onder Linux - find en locate in detail
Het vinden van bestanden en mappen in Linux is met find en locate kinderspel. Beide opdrachten bieden je verschillende mogelijkheden om de zoekopdracht aan te passen.
Veelgestelde vragen
Wat is het verschil tussen find en locate?find zoekt in realtime op de harde schijf, terwijl locate een database gebruikt en daardoor sneller is, maar mogelijk geen actuele resultaten levert.
Hoe update ik de database van locate?Met de opdracht sudo updatedb kun je de database van locate bijwerken.
Kan ik met find op bestands grootte zoeken?Ja, dat is mogelijk door de optie -size te gebruiken.
Hoe kan ik mijn zoekopdracht beperken op bestands- of mapnaam?Gebruik de opties -name of -type om gericht naar specifieke namen of bestandstypen te zoeken.
Wat is een voorbeeld van een combinatie van zoekcriteria?Je kunt find gebruiken om naar bestanden van het type -type f te zoeken en tegelijkertijd op te geven dat de bestanden in de afgelopen 24 uur met -mtime -1 zijn gewijzigd.