Betaalmethoden Abuse

De opdracht find in Linux

04.03.2023, 02:43

De opdracht find in Linux wordt gebruikt om bestanden en mappen te zoeken in opgegeven mappen op basis van verschillende criteria. Dit commando is een van de krachtigste en meest gebruikte hulpprogramma's in Linux.

Formaat van het commando

Het basisformaat van de opdracht find is als volgt:

find [path] [expression]

waarbij:

path het pad is naar de directory waarin bestanden moeten worden gezocht (standaard doorzoekt find de huidige directory en al zijn submappen);

expressie een expressie is die de criteria definieert voor het zoeken naar bestanden.

De volgende zijn enkele van de meest voorkomende zoekcriteria voor bestanden die kunnen worden gebruikt in een expressie van het commando find:

-naam: bestanden zoeken op naam. Bijvoorbeeld:

find /home/user -name myfile.txt

-type: zoek naar bestanden van een specifiek type (bijvoorbeeld f voor reguliere bestanden of d voor mappen). Bijvoorbeeld:

find /home/user -type f

-grootte: bestanden zoeken op grootte. Bijvoorbeeld:

find /home/user -size +10M

-mtime: bestanden zoeken op laatste wijzigingstijd. Bijvoorbeeld:

find /home/user -mtime -7

-user en -group: bestanden zoeken op eigenaar en groep. Bijvoorbeeld:

find /home/user -user bob -group users

Je kunt de logische operatoren -en, -of en -niet gebruiken om meerdere zoekcriteria te combineren in een enkele expressie.

Het volgende commando vindt bijvoorbeeld alle bestanden in de map /home/user die de afgelopen 7 dagen zijn gewijzigd en groter zijn dan 10 megabyte:

find /home/user -type f -mtime -7 -size +10M

Met de opdracht find kun je ook verschillende acties uitvoeren op de gevonden bestanden met de optie -exec. Je kunt bijvoorbeeld alle bestanden verwijderen die meer dan 30 dagen geleden zijn gewijzigd met de volgende opdracht:

find /home/user -type f -mtime +30 -exec rm {} ;

Hier voert de -exec optie de rm opdracht uit voor elk gevonden bestand en gebruikt {} om de bestandsnaam in de opdracht te vervangen.

De opdracht find is een krachtig hulpmiddel om bestanden en mappen te vinden in Linux, dat kan worden gebruikt om verschillende beheertaken uit te voeren.

Extra opties

De opdracht find ondersteunt veel andere opties die kunnen worden gebruikt om bestanden nauwkeuriger te vinden:

-iname: zoek naar bestanden op naam zonder rekening te houden met hoofdletters en kleine letters. Bijvoorbeeld:

find /home/user -iname myfile.txt

-regex: zoek naar bestanden waarvan de naam overeenkomt met een gegeven reguliere expressie. Bijvoorbeeld:

find /home/user -regex ".*.txt$"

-maxdepth en -mindepth: beperk de diepte van het zoeken naar bestanden in submappen. Bijvoorbeeld:

find /home/user -maxdepth 2 -type f

-prune: sluit bepaalde mappen uit van de zoekopdracht. Bijvoorbeeld:

find /home/user -path /home/user/excluded -prune -o -type f -print

-print: voer de lijst met gevonden bestanden uit naar standaarduitvoer. Bijvoorbeeld:

find /home/user -type f -print

find ondersteunt ook het zoeken van bestanden op verschillende attributen zoals permissies, bestandsattributen, SELinux-labels en andere. Meer informatie over deze opties is te vinden in de documentatie van het commando find.

Het commando kan zoeken naar bestanden en mappen in het hele bestandssysteem, wat veel tijd en bronnen kan kosten. Daarom is het belangrijk om voorzichtig te zijn bij het gebruik van dit commando en ervoor te zorgen dat de zoekcriteria correct zijn ingesteld om te voorkomen dat er onnodige bestanden of fouten in het systeem worden gevonden.