Startpagina > Bestands- en mapbeheer > find

De find-opdracht onder de knie krijgen

Dit is een gids voor de `find`-opdracht, die wordt gebruikt om bestanden en mappen in het bestandssysteem van Linux te zoeken. U kunt efficiënt de gewenste bestanden vinden door verschillende voorwaarden en acties te combineren.

Hoofdopties

Probeer bestanden in het bestandssysteem te zoeken en te verwerken door de verschillende opties van de `find`-opdracht te combineren.

1. Basis zoeken

2. Tijdscondities

3. Grootte- en permissiecondities

4. Acties

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`find` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Logische operatoren

De `find`-opdracht biedt logische operatoren om nauwkeurigere zoekopdrachten uit te voeren door meerdere voorwaarden te combineren.

Belangrijkste logische operatoren Operatoren die worden gebruikt om meerdere voorwaarden te combineren. Standaard wordt AND (`-a`) toegepast.
Operator Beschrijving Voorbeeld
-and (of weggelaten) Wanneer zowel de linker- als de rechterconditie waar is `find . -name "*.txt" -and -size +1M`
-or Wanneer ten minste één van de linker- of rechtercondities waar is `find . -name "*.log" -or -name "*.tmp"`
-not (of !) Wanneer de conditie onwaar is `find . -not -name "*.txt"`
( ) Groeperen van voorwaarden (vereist escaping) `find . \( -name "*.txt" -or -name "*.doc" \)`

Operator-prioriteit

De operatoren van de `find`-opdracht worden over het algemeen zo geëvalueerd dat acties na expressies worden verwerkt. Binnen voorwaarden kunnen haakjes (`()`) worden gebruikt om de prioriteit expliciet te specificeren. Bij het gebruik van haakjes moeten deze worden ge-escaped met een backslash (`\`) omdat ze een speciale betekenis hebben in de shell.

Gebruiksvoorbeelden

Oefen met het zoeken en beheren van bestanden aan de hand van praktische gebruiksvoorbeelden van de `find`-opdracht.

Alle bestanden met de extensie '.log' vinden in de huidige map

find . -name "*.log"

Zoekt naar alle bestanden die eindigen op `.log` op de huidige locatie.

Bestanden groter dan 50 MB vinden

find /var -size +50M

Zoekt naar alle bestanden met een grootte van meer dan 50 MB onder de `/var`-map van het systeem.

Bestanden 'conf' vinden die in de afgelopen 7 dagen zijn gewijzigd

find . -name "*.conf" -mtime -7

Vindt `.conf`-bestanden die in de afgelopen 7 dagen zijn gewijzigd in de huidige map.

Alle mappen met toegangsmachtigingen 777 vinden

find / -type d -perm 777

Zoekt naar mappen met machtigingen ingesteld op 777 in het hele systeem om beveiligingsrisico's te controleren.

Oude '.tmp'-bestanden verwijderen

find /tmp -name "*.tmp" -mtime +30 -delete

Vindt en verwijdert alle `.tmp`-bestanden die ouder zijn dan 30 dagen in de `/tmp`-map.

Een specifieke opdracht uitvoeren op gevonden bestanden (chmod)

find . -name "*.sh" -exec chmod 755 {} \;

Verleent uitvoeringsmachtigingen (755) aan alle bestanden met de extensie `.sh` in de huidige map.

Bestanden groter dan 1 GB vinden die eigendom zijn van een specifieke gebruiker

find /home -user user1 -size +1G

Zoekt in de map `/home` naar bestanden die eigendom zijn van `user1` en groter zijn dan 1 GB.


Hétzelfde categoriecommando