Scroll to navigation

FIND(1) General Commands Manual FIND(1)

NAAM

find - zoek bestanden in een hiërarchie van mappen

SAMENVATTING

find [-H] [-L] [-P] [-D debugopts] [-Olevel] [begin-punt..] [expressie]

BESCHRIJVING

Deze handleiding documenteert de GNU versie van find. GNU find door zoekt de mappen boom vanaf elk opgegeven startpunt terwijl het de expressie van links naar rechts evalueert, volgens de voorrangsregels (zie sectie OPERATORS), totdat de uitkomst bekend is (de linker kant is onwaar voor en operaties, waar voor of, vanaf welk punt find naar de volgende bestandsnaam springt. Als geen startpunt werd opgegeven dan wordt `.' aangenomen.

Als u find gebruikt in een omgeving waar veiligheid belangrijk is (bijvoorbeeld als u het gebruikt om te zoeken naar mappen die schrijfbaar zijn door andere gebruikers), dan wordt u aangeraden het hoofdstuk "Veiligheids Overwegingen" uit de findutils documentatie te lezen, dat Bestanden Zoeken heet en onderdeel is van findutils. Dat document bevat ook meer details en discussie dan deze handleiding, daarom zult u dat mogelijk een betere bruikbare bron van informatie vinden.

OPTIES

De -H, -L en -P opties bepalen de behandeling van symbolische koppelingen. Argumenten op de commando-regel die deze volgen, worden geïnterpreteerd als namen van bestanden of mappen die onderzocht moeten worden, tot en met het eerste argument dat begint met een `-', of het argument `(' of `!'. Dit argument en de volgende argumenten worden gezien als een expressie die beschrijft wat er gezocht moet worden. Als geen paden opgegeven werden, dan wordt de huidige map gebruikt. Is geen expressie werd opgegeven, dan wordt de print expressie gebruikt (hoewel u in elk geval beter print0 zou moeten gebruiken).

Deze handleiding spreekt over 'opties' in een lijst van expressies. Deze opties bepalen het gedrag van find maar worden onmiddellijk na de laatste padnaam opgegeven. De vijf 'echte' opties -H, -L, -P, -D en -O moeten opgegeven worden vóór de eerste padnaam, of in het geheel niet. Een dubbel streepje, --, zou theoretisch kunnen worden gebruikt om resterende argumenten aan te duiden die geen opties zijn, maar dat werkt niet echt vanwege de manier waarop find het einde van het volgende pad argument bepaald: het doet dit door te lezen totdat een expressie volgt (die ook start met een '-'). Welnu, als een pad argument zou beginnen met een '-' dan zou find het in plaats van een pad behandelen als een expressie argument. Om u ervan te verzekeren dat alle startpunten als zodanig herkend worden, en speciaal om te voorkomen dan jokertekens patronen worden geëxpandeerd door de aanroepende shell per ongeluk als een expressie argument behandeld worden, is het in het algemeen veiliger om de jokertekens of dubieuze padnamen vooraf te laten gaan door hetzij een './' hetzij een absolute padnaam te gebruiken die begint met een '/'. Als alternatief is het in het algemeen veiliger maar niet overdraagbaar om de GNU optie -files0-from te gebruiken om willekeurige begin punten mee te geven an find.

Volg nooit symbolische koppelingen. Dit is standaard gedrag. Indien find informatie over bestanden onderzoekt of toont, en het bestand zelf een symbolische koppeling is, dan wordt de informatie van de eigenschappen van de symbolische koppeling zelf genomen.

Volg symbolische koppelingen. Indien find informatie over bestanden onderzoekt of toont, dan wordt deze informatie uit de eigenschappen van het bestand waar de koppeling naar wijst getoond, niet van de koppeling zelf (behalve als het een defecte symbolische koppeling is of find is niet in staat het bestand waar de koppeling naar wijst te onderzoeken). Het gebruik van deze optie impliceert -noleaf. Als u later de -P optie gebruikt, dan is -noleaf nog steeds geldig. Als -L geldig is en find vindt een symbolische koppeling naar een onder-map tijdens het zoeken, dan wordt de onder-map aangewezen door de symbolische koppeling doorzocht.
Indien de -L optie werd gebruikt, dan zal het -type predicaat altijd passen op het type bestand waar een symbolische koppeling naar wijst in plaats van de koppeling zelf (behalve als de symbolische koppeling defect is). Acties die ervoor kunnen zorgen dat symbolische koppelingen defect raken terwijl find wordt uitgevoerd (b.v. delete kunnen aanleiding geven tot verwarrend gedrag. -L gebruiken zorgt ervoor dat de -lname en -ilname predicaten altijd onwaar retourneren.

Volg symbolische koppelingen niet, behalve tijdens het verwerken van de argumenten op de commando regel. Zodra find informatie over bestanden onderzoekt of afdrukt, zal deze ontnomen worden uit de eigenschappen van de symbolische koppeling zelf. De enige uitzondering op de gedrag is als het bestand opgegeven op de commando regel een symbolische koppeling is en de koppeling kan worden bevestigd. In deze situatie wordt de informatie gebruikt waar de koppeling naar wijst (m.a.w. de koppeling wordt gevolgd). De informatie over de koppeling zelf wordt gebruikt om op terug te vallen indien het door de koppeling aangewezen bestand niet onderzocht kan worden. Als -H werd gebruikt en een van de, op de commando regel opgegeven, paden is een symbolische koppeling naar een map, dan zal de inhoud van deze map worden onderzocht (hoewel natuurlijk --maxdepth 0 dit zou voorkomen).

Als meer dan een van -H, -L en -P werd opgegeven, dan vervangt de een alle andere; de laatste optie die op de commando regel werd opgegeven wordt gezet. Omdat dat de standaard is, moet men ervan uitgaan dat de -P optie gezet is, behalve als of -H of -L werd opgegeven.

GNU find 'stat' bestanden frequent tijdens het verwerken van de commando regel zelf, vóór dat enig zoeken begonnen is. Deze opties beïnvloeden ook hoe de argumenten verwerkt worden. Zo zijn er een aantal testen die bestanden opgegeven op de commando regel vergelijken met een bestand dat we onderzoeken. In elk geval zal het bestand worden onderzocht en sommige van zijn eigenschappen worden bewaard. Als het genoemde bestand een symbolische koppeling is, en de -P optie is gezet (of als noch -H noch -L werden gezet), dan wordt de informatie gebruikt voor de vergelijking genomen van de eigenschappen van de symbolische koppeling. Anders wordt deze genomen van de eigenschappen van het bestand waar de koppeling naar wijst. Als find de koppeling niet kan volgen (omdat het b.v. onvoldoende rechten heeft of omdat hij naar een niet bestaand bestand wijst) dan worden de eigenschappen van de koppeling zelf gebruikt.

Als of de -H of -L optie gezet is, dan wordt elke symbolische koppeling gegeven door het volgen van het argument van -newer, en wordt de tijdstempel gehaald van het bestand waar de koppeling naar wijst. Dezelfde consideratie is van toepassing op -newerXY, -anewer en -cnewer.

De -follow optie heeft een vergelijkbaar effect als -L, hoewel het in effect treed vanaf het punt waar deze verschijnt (dit betekent, als -L niet werd gebruikt maar -follow wel, elke symbolische koppeling die verschijnt ná -follow op de commando regel gevolgd en die er vóór niet).

-D debugopts
Toon diagnostische informatie; dit kan behulpzaam zijn om problemen te onderzoeken indien find niet doet wat u wilt. De lijst van debug opties moet gescheiden worden met komma´s. Compatibiliteit van de debug opties is neit gegarandeerd tussen uitgaven van findutils. Zie voor de complete lijst van debug opties de uitvoer van find -D help. Geldige debug opties zijn
Toon diagnostische informatie over -exec, -execdir, -ok en -okdir
Toon diagnostische informatie over de optimalisatie van de expressie boom; zie de -O optie
Toon een samenvatting die aangeeft hoe vaak een predicaat slaagde of faalde.
Navigeer uitgebreid de map boom.
Toon berichten als bestanden worden onderzocht met de stat en lstat systeem aanroepen. Het find programma probeert deze aanroepen te minimaliseren.
Toon de expressie boom in originele en geoptimaliseerde vorm.
Schakel alle andere debug opties in (behalve help).
Let de debug opties uit.
Schakel verzoek optimalisatie in. Het find programma herschikt testen met als doel de uitvoer te versnellen terwijl het effect gehandhaafd moet blijven; dat wil zeggen, predicaten met bij effecten worden niet onderling geherschikt. De optimalisatie uitgevoerd op elk optimalisatie niveau zijn als volgt.
0
Equivalent aan optimalisatie niveau 1.
1
Dit is het standaard optimalisatie niveau, het komt overeen met het traditionele gedrag. Expressies worden van volgorde verandert zodat testen die alleen op de bestandsnamen zijn gebaseerd (bij voorbeeld -name en -regex) als eerste worden uitgevoerd.
2
Elke -type of -xtype test worden uitgevoerd na elke test die alleen gebaseerd is op de namen van de bestanden, maar voor elke test die informatie van de inode vereist. Op moderne versies van Linux worden bestandstypen geretourneerd door readdir() en daarom evalueren deze predicaten sneller dan predicaten die eerst het bestand moeten stat´en. Indien u het -fstype FOO predicaat gebruikt en een bestandssysteem type FOO specificeert dat onbekend is (dat is, aanwezig in '/etc/mtab') op het moment dat find start, dan is dat predicaat equivalent aan -false.
3
Bij dit optimalisatie niveau wordt de op kosten-gebaseerde query optimalisatie ingeschakeld. De volgorde van testen wordt zo aangepast dat goedkope (m.a.w. snelle) testen als eerste worden uitgevoerd en duurdere worden indien nodig later uitgevoerd. Binnen elke kosten band worden predicaten vroeger of later geëvalueerd gebaseerd op of ze succesvol zullen zijn of niet. Dus -o predicaten die hoogstwaarschijnlijk zullen slagen worden later geëvalueerd, en dus -a predicaten die hoogstwaarschijnlijk zullen falen worden eerder geëvalueerd.
De op kosten-gebaseerde optimalisator heeft een vast idee hoe waarschijnlijk enige test zal slagen. In sommige gevallen houdt de waarschijnlijkheid rekening met het gedrag van een specifieke test (bijvoorbeeld zal -type f waarschijnlijker vaker slagen dan -type c). De kosten-gebaseerde optimalisator wordt momenteel geëvalueerd. Als deze niet daadwerkelijk de prestaties van find verbeterd zal hij weer worden verwijderd. Daarentegen zullen optimalisaties die bewezen hebben betrouwbaar, robuuste en effectief te zijn aangezet worden voor lagere optimalisatie niveau´s mettertijd. Hoewel het standaard gedrag (i.e. optimalisatie niveau 1) niet zal worden veranderd in de 4.3.x series. De findutils test suite voert alle testen in find bij elk optimalisatie niveau uit en verzekert dat de resultaten hetzelfde zijn.

EXPRESSIE

Het deel van de commando regel na de lijst van startpunten is de expressie. Het is een soort van query specificatie die beschrijft hoe we bestande vergelijken en wat we doen met bestanden die overeen kwamen. Een expressie is samengesteld uit een rij van dingen:

Testen geven een waar of onwaar terug, normaliter op basis van een eigenschap van het bestand dat we overwegen. De empty test bij voorbeeld alleen waar als het huidige bestand leeg is.

Acties hebben neven effecten (zoals het tonen van iets op de standaard uitvoer) en retourneren ofwel waar of niet-waar, gebaseerd of al dan niet succesvol zijn. De -print actie bijvoorbeeld toont de naam van het huidige bestand op de standaard uitvoer.

Globale opties beinvloeden de werking van testen en acties zoals gespecificeerd in enig deel van de commando regel. Globale opties retourneren altijd waar. De -depth optie zorgt er bijvoorbeeld voor dat find het bestandssysteem in omgekeerde volgorde afloopt.

Positie opties beinvloeden alleen de daarop volgende testen of acties. Positie opties retourneren altijd waar. De -regextype optie is bijvoorbeeld positioneel, die het reguliere expressie dialect specificeert voor reguliere expressies die later op de commando regel voorkomen.

Operatoren koppelen de andere items in een expressie. Voorbeelden zijn -o (de logische OF) en -a (de logische EN). Als een operator ontbreekt dan wordt -a aangenomen.

De -print actie wordt uitgevoerd op alle bestanden waarvoor de hele expressie waar is, behalve als deze een actie bevat anders dan -prune of -quit. Acties die de standaard -print verbieden zijn -delete, -exec, -execdir, -ok, -okdir, -fls, -fprint, -fprintf, -ls, -print en -printf.

De -delete actie gedraagt zich ook als een optie (omdat deze -depth impliceert.

POSITIONALE OPTIES

Positionale opties geven `waar' terug. Ze hebben altijd gevolgen en worden nietalleen verwerkt als hun positie in de expressie bereikt wordt.

Meet de tijden (voor -amin, -atime, -cmin, -ctime, -mmin, en -mtime) van het begin van vandaag in plaats van 24 uur geleden. Dezeoptie beïnvloed alleen testen die later op de commando regel verschenen.

Afgekeurd; gebruik de -L optie in plaats hiervan. Volg symbolische koppelingen. Impliceert -noleaf. De -follow optie beïnvloed alleen die testen die verschijnen na deze op de commando regel. Behalve als de -H of -L opties werden opzet, veranderd de positie van de -follow optie het gedrag van het het -newer predicaat; alle bestanden opgegeven als argument van -newer worden gevolgd als dat symbolische koppelingen zijn. Dezelfde overweging is van toepassing op -newerXY, -anewer en -cnewer. Hiermee vergelijkbaar zal het -type predicaat altijd passen op het type van het bestand waar de symbolische koppeling naar wijst in plaats van het bestand zelf. Het gebruik van -follow zorgt er voor dat de -lname en -ilname predicaten altijd onwaar terug geven.

Verandert de reguliere expressie syntax zoals begrepen door de -regex en -iregex testen die later op de commando regel verschijnen. Gebruik -regextype help om te zien welke typen reguliere expressie begrepen worden. De Texinfo documentatie (Zie ZIE OOK) legt de betekenis van en de verschillen tussen de diverse reguliere expressies uit.

Schakel waarschuwing berichten aan of uit. Deze waarschuwingen hebben alleen betrekking op het gebruik van de commando regel, niet op elke conditie die find tegen kan komen terwijl het mappen doorzoekt. Het standaard gedrag komt overeen met -warn als de standaard invoer een tty is, en anders met -nowarn. Als er een waarschuwing wordt geproduceerd die gerelateerd is aan het gebruik van de commando regel, dan wordt de afsluit status van find niet gewijzigd. Als de POSIXLY_CORRECT omgevingsvariabele is gezet en -warn ook werd gebruikt dan is het niet gespecificeerd of er enige waarschuwing actief zal worden.

GLOBALE OPTIES

Globale opties retourneren altijd waar. Globale opties gelden zelfs voor testen die eerder op de commando regel werden opgegeven. Om verwarring te voorkomen moeten globale opties na de lijst met startpunten maar voor de eerste test, positionele optie of actie, opgegeven worden. Als u een globale optie op een andere plek opgeeft zal find een waarschuwing geven, die uitlegt dat dat verwarrend kan zijn.

De globale opties komen voor na de lijst van startpunten, en zijn daarom niet van dezelfde soort opties als bijvoorbeeld -L.

De synoniem van-depth, voor compatibiliteit met FreeBSD, NetBSD, MacOS X en OpenBSD.

Verwerk de inhoud van elke map vóór de map zelf. De -delete actie impliceert ook -depth.

Lees de beginpunten van bestand in plaats van ze te verkrijgen via de commando regel. In tegenstelling tot de bekende beperkingen van het verkrijgen van beginpunten via argumenten op de commando regel, namelijk de limitatie van het aantal bestandsnamen en de inherente ambiguïteit van bestandsnamen die botsen met optie namen, staat deze optie toe om veilig een willekeurig aantal van startpunten aan find mee te geven.

Het gebruik van deze optie en het doorgeven van startpunten op de commando regel sluit elkaar uit, en worden daarom niet tegelijkertijd toegestaan.

Het bestand argument is verplicht. Men kan -files0-from - gebruiken om de lijst van startpunten te lezen van de standaard invoer stream, en b.v. van een pijp. In dit geval zijn de acties -ok en -okdir niet toegestaan, omdat deze duidelijk interfereren met het lezen van standaard invoer om op deze manier de bevestiging van de gebruiker te verkrijgen.

De startpunten in bestand moeten worden gescheiden door ASCII NUL tekens. Twee opeenvolgende NUL tekens, m.a.w. een startpunt met een bestandsnaam van lengte nul wordt niet toegestaan en zal leiden tot een fout diagnose gevolgd door een niet-nul afsluit code.

In dit geval is het gegeven bestand leeg, find zal geen enkel startpunt verwerken en daarom onmiddellijk na het ontleden van de programma argumenten eindigen. Dit is anders dan de standaard invocatie waar find aanneemt dat de huidige map het startpunten is zodra er geen pad argument werd mee gegeven.

The processing of the starting points is otherwise as usual, e.g. find will recurse into subdirectories unless otherwise prevented. To process only the starting points, one can additionally pass -maxdepth 0.

Further notes: if a file is listed more than once in the input file, it is unspecified whether it is visited more than once. If the file is mutated during the operation of find, the result is unspecified as well. Finally, the seek position within the named file at the time find exits, be it with -quit or in any other way, is also unspecified. By "unspecified" here is meant that it may or may not work or do any specific thing, and that the behavior may change from platform to platform, or from findutils release to release.

Toon een samenvatting van het gebruik van het commando find en stop.

Normaliter zal find een fout melden wanneer het een bestand niet kan "stat"-en. Als u deze optie gebruikt en een bestand werd gewist tussen het tijdstip date find de naam van het bestand van de map las en de tijd dat het het bestand probeert te "stat"-en, dan wordt geen foutmelding gegeven. Dit is ook van toepassing op bestanden of mappen wiens naam op de commando regel werden opgegeven. De optie wordt gezet op het moment dat de commando regel wordt gelezen, hetgeen betekent dat u niet een deel van het bestandssysteem kunt doorzoeken met deze optie aan een een ander deel met de optie uit (als u dat nodig heeft dan zult u twee find commando´s moeten maken, een met de optie aan en een zonder).

Bovendien van find met de -ignore_readdir_race optie fouten van de -delete. actie negeren in het geval het bestand verdween vanaf het moment dat de ouder map werd gelezen: het zal geen fout diagnostiek melden en de terugkeer code van de -delete actie zal waar zijn.

Daal maximaal niveaus (een niet-negatief heel getal) van mappen af onder het start-punten. Gebruik -maxdepth 0 om de testen en acties alleen op de start-punten toe te passen.

Pas geen testen of acties toe op niveaus lager dan niveaus (een niet negatief heel getal). -mindepth 1 betekend verwerk alle bestanden behalve de start-punten.

Daal niet af in mappen op andere bestandsystemen. Een alternatief voor -xdev, voor overdraagbaarheid met andere versies van find.

Schakel het effect van -ignore_readdir_race uit.

Maak uitvoering niet sneller door aan te nemen dat mappen 2 minder submappen bevatten dan hun harde koppelingen aantal. Deze optie is nodig bij zoeken door bestandssystemen die de Unix map-koppelingen gewoontes niet volgen zoals CD-ROM of MS-DOS bestandssystemen, of AFS volume mount punten. Elke map op een normaal Unix bestandsysteem heeft tenminste 2 harde koppelingen: zijn naam en zijn `.' ingang. Daar bovenop hebben zijn submappen (als aanwezig) elk een `..' ingang verbonden naar die map. Wanneer find een map onderzoekt, nadat het 2 minder submappen rekent dan het koppelingen aantal van de map, weet het dat de rest van de ingangen in de map niet-mappen zijn (`blad' bestanden in de mappen boom). Als alleen debestandsnamen onderzocht dienen te worden is het niet nodig ze te beoordelen; dit geeft een belangrijke toename van zoek snelheid.

Druk het find versie nummer af en eindig.

Daal niet af in mappen op andere bestandsystemen.

TESTS

Sommige testen, bijvoorbeeld -newerXY en -samefile, staan toe bestanden, die onderzochie bestand op de commando regel, te vergelijken. Indien deze testen worden gebruikt, wordt de interpretatie van het referentie bestand bepaald door de opties -H, -L and -P en enige voorafgaande -follow, maar wordt het referentie bestand slechts eenmaal onderzocht, op het moment dat de commando regel wordt gelezen. Als het referentie bestand niet kan worden onderzocht (bijvoorbeeld, als de stat(2) systeem aanroep faalt), dan wordt een foutmelding getoond en zal find met een niet-nul status eindigen.

Een numeriek argument n kan worden meegegeven aan testen (zoals -amin, -mtime, -gid, -inum, -links, -size, -uid en -used) als

+n
voor groter dan n,
-n
voor minder dan n,
n
voor precies n.

Ondersteunde testen:

Het bestand werd minder dan, meer dan of exact n minuten geleden benaderd.

De tijd van de laatste toegang van het huidige bestand is recenter dan die van de laatste datum wijziging van het referentie bestand. Als referentie een een symbolische koppeling is en de -H optie of de -L optie werd gebruikt, dan wordt altijd de laatste wijzigingstijd van het bestand waarnaar gewezen gebruikt.

Het bestand werd minder dan, meer dan of exact n*24 uur geleden benaderd. Als find erachter komt hoeveel 24-uur perioden geleden een bestand voor het laatst benaderd werd, dan wordt elke fractie genegeerd om zo met -atime +1 over een te komen, een bestand moet op zijn minst two dagen geleden zijn benaderd.

De status van het bestand werd minder dan, meer dan of exact n minuten geleden gewijzigd.

Tijd van de laatste status verandering van het huidige bestand is recenter dan dat van de laatste datum wijziging van het referentie bestand. Als referentie een symbolische koppeling is en de -H optie of de -L optie werden gebruikt, dan wordt altijd de tijd van de laatste datum wijziging van het bestand waar het naar wijst gebruikt.

Bestand-status werd voor het laatst minder dan, meer dan of exact n*24 uur geleden veranderd. Zie het commentaar voor -atime om te begrijpen hoe het afronden de interpretatie van de bestandsstatus veranderings tijden beïnvloed.

Bestand is leeg en is of een normaal bestand, of een map.

Matches files which are executable and directories which are searchable (in a file name resolution sense) by the current user. This takes into account access control lists and other permissions artefacts which the -perm test ignores. This test makes use of the access(2) system call, and so can be fooled by NFS servers which do UID mapping (or root-squashing), since many systems implement access(2) in the client's kernel and so cannot make use of the UID mapping information held on the server. Because this test is based only on the result of the access(2) system call, there is no guarantee that a file for which this test succeeds can actually be executed.

Altijd onwaar.

Bestand staat op een bestandssysteem van type soort. De geldige bestandssysteem typen verschillen tussen verschillende versies van Unix; een onvolledige lijst van bestandssysteem soorten die geaccepteerd worden op een of andere versie van Unix is: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. U kunt -printf met de %F richtlijn gebruiken om de typen van uw bestandssystemen te zien.

Het numerieke groep ID van bestand is kleiner dan, groter dan of exact n.

Bestand hoort bij groep gnaam (numeriek groep ID toegestaan).

Net als -lname, maar de overeenkomst is ongevoelig voor het verschil tussen hoofd- en kleine- letters. Als de -L optie of de -follow optie werden gebruikt dan geeft deze test een onwaar terug behalve als de symbolische koppeling defect was.

Net als -name, maar de overeenkomst is ongevoelig voor het verschil tussen hoofd- en kleine- letters. Bijvoorbeeld, de patronen `fl*' en `F???' komen overeen met de namen `Flip', `FLIP', `flip', `fLIp', enz.

Bestand heeft inode nummer kleiner dan, groter dan of exact n. Het is normaliter eenvoudiger om in plaats daarvan de -samefile test te gebruiken.

Net als -path, maar de overeenkomst is ongevoelig voor het verschil tussen hoofd- en kleine- letters.

Net als -regex, maar de overeenkomst is ongevoelig voor het verschil tussenhoofd- en kleine- letters.

Zie -ipath. Dit alternatief is minder overdraagbaar dan -ipath.

Bestand heeft minder dan, meer dan of exact n harde koppelingen.

Bestand is een symbolische koppeling wiens inhoud overeenkomt met shell patroon patroon. De meta-tekens behandelen `/' en `.' niet speciaal. Als de -L optie of de -follow optie werden gebruikt dan geeft deze test een onwaar terug behalve als de symbolische koppeling defect was.

Bestandsgegevens werden het laatst minder dan, meer dan of exact n minuten geleden aangepast.

Bestandgegevens werden het laatst minder dan, meer dan of exact n*24 uur geleden aangepast. Zie het commentaar voor -atime om te begrijpen hoe het afronden de interpretatie van de bestandsstatus veranderings tijden beïnvloed.

Basis van de bestandsnaam (het pad met het voorvoegsel van mappen verwijderd) komt overeen met shell patroon patroon. Omdat het voorvoegsel van mappen verwijderd is, zullen de bestandsnamen die bekeken worden voor de overeenkomst met -name nooit een schuine streep bevatten, daarom zal '-name a/b' nooit overeenkomen met iets (u dient mogelijk -path in plaats hiervan te gebruiken). Er zal een waarschuwing gegeven worden als u dit probeert te doen, behalve als de omgevingsvariabele POSIXLY_CORRECT werd gezet. De meta-karakters (`*', `?', and `[]') passen op een `.' aan het begin van de basis (dit is een verandering in findutils-4.2.2; zie sectie VOLDOET AAN hieronder). Om een map en de bestanden daaronder te negeren, gebruik dan -prune in plaats van het controleren van elk bestand in de boom; zie een voorbeeld in de beschrijven van die actie. Haakjes worden niet herkend als zijnde speciaal, ondanks het feit dat sommige shells inclusief Bash haakjes gebruiken met een speciale betekenis in shell patronen. Het herkennen van de bestandsnaam wordt gedaan door het gebruik van de fnmatch(3) bibliotheek functie. Vergeet niet het patroon met aanhalingstekens te omgeven, om te voorkomen dat de shell het expandeert.

De tijd van de laatste data modificatie van het huidige bestand is recenter dan die van de laatste date modificatie van het reference bestand. Als reference een symbolische koppeling is en de -H optie of de -L optie werd gezet, dan wordt de tijd van de laatste data modificatie van het bestand waar deze naar wijst altijd gebruikt.

Succeeds if timestamp X of the file being considered is newer than timestamp Y of the file reference. The letters X and Y can be any of the following letters:

a De toegangstijd van het bestand referentie
B De aanmaak tijd van het bestand referentie
c De veranderingstijd van de inode van referentie
m De wijzigingstijd van het bestand referentie
t referentie werd direct als een tijd geïnterpreteerd.

Some combinations are invalid; for example, it is invalid for X to be t. Some combinations are not implemented on all systems; for example B is not supported on all systems. If an invalid or unsupported combination of XY is specified, a fatal error results. Time specifications are interpreted as for the argument to the -d option of GNU date. If you try to use the birth time of a reference file, and the birth time cannot be determined, a fatal error message results. If you specify a test which refers to the birth time of files being examined, this test will fail for any files where the birth time is unknown.

Geen enkele groep hoort bij het numerieke groep ID van bestand.

Geen enkele gebruiker hoort bij het bestand numerieke ID.

Bestandsnaam komt overeen met shell patroon patroon. De meta-tekensbehandelen `/' en `.' niet speciaal; dus, bijvoorbeeld,
find . -path "./sr*sc"

zal een ingang voor een map genaamd './src/misc' (als die bestaat) tonen. Gebruik -prune mm een hele mappen boom te negeren, in plaats van elk bestand in de boom te testen. Merk op dat de test op de overeenkomst van het patroon van toepassing is op de hele bestandsnaam, beginnend bij een van de begin punten genoemd op de commando regel. Het is hier alleen zinvol om een absoluut padnaam te gebruiken als het relevante begin punt ook een absoluut pad is. Dit betekent dat dit commando nooit op iets zal passen:

find bar -path /foo/bar/myfile -print

Find compares the -path argument with the concatenation of a directory name and the base name of the file it's examining. Since the concatenation will never end with a slash, -path arguments ending in a slash will match nothing (except perhaps a start point specified on the command line). The predicate -path is also supported by HP-UX find and is part of the POSIX 2008 standard.

Bestandspermissie-bits zijn precies mode (octaal of symbolisch). Omdat een exacte overeenkomst is vereist, als u deze vorm wilt gebruiken voor symbolische modi, dan dient u een behoorlijk complexe mode tekenreeks op te geven. Bijvoorbeeld '-perm g=w' zal alleen passen op bestanden met een mode 0020 (dat is, die waarvoor de groep schrijf rechten het enige recht is dat gezet werd). Het is meer waarschijnlijk dat u de `/' of `-' vormen wilt gebruiken, bijvoorbeeld `-perm -g=w', die elk bestand met de groep schrijf rechten vind. Zie de VOORBEELDEN sectie voor enkele illustratieve voorbeelden.

Alle rechten bits mode zijn gezet voor het bestand. Symbolische modi worden geaccepteerd in deze vorm, en dit is de gebruikelijke manier op welke u deze zou willen gebruiken. U dient `u', `g' of `o' op te geven indien u een symbolische mode wilt gebruiken. Zie de VOORBEELDEN sectie voor enkele illustratieve voorbeelden.

Enige rechten bits mode zijn gezet voor het bestand. Symbolische modi worden geaccepteerd in deze vorm. U dient `u', `g' of `o' op te geven indien u een symbolische mode gebruikt. Zie de VOORBEELDEN sectie voor enkele illustratieve voorbeelden. Als er geen rechten bits in mode werden gezet, dan past deze test op elk bestand (het idee is hier om consistent met het gedrag van -perm -000).

Dit wordt niet langer ondersteund (en is verouderd vanaf 2005). Gebruik -perm /mode in de plaats hiervan.

Matches files which are readable by the current user. This takes into account access control lists and other permissions artefacts which the -perm test ignores. This test makes use of the access(2) system call, and so can be fooled by NFS servers which do UID mapping (or root-squashing), since many systems implement access(2) in the client's kernel and so cannot make use of the UID mapping information held on the server.

Bestandsnaam komt overeen met reguliere expressie patroon. Dit is een overeenkomst met het hele pad, er wordt niet in gezocht. Bijvoorbeeld, om met een bestand genaamd `./flopje3' overeen te komen, kunt u de reguliere expressie `.*opje.' of `.*o.*3', maar niet `o.*e3' gebruiken. De reguliere expressies die door find begrepen worden zijn standaard Emacs Reguliere Expressie (behalve dat ´. ' past op een nieuwe regel), echter kan dit worden veranderd met de -regextype optie.

File refers to the same inode as name. When -L is in effect, this can include symbolic links.

Bestand gebruikt afgerond minder dan, meer dan of exact n eenheden ruimte. De volgende achtervoegsels kunnen gebruikt worden:
`b'
voor 512-byte blokken (dit is standaard als geen achtervoegsel gebruikt werd).
`c'
voor bytes
`w'
voor twee-byte woorden
`k'
voor kibibytes (KiB, eenheden van 1024 bytes)
`M'
voor mebibytes (MiB, eenheden van 1024 * 1024 = 1048576 bytes)
`G'
voor gibibytes (GiB, eenheden van 1024 * 1024 * 1024 = 1073741824 bytes)
De grootte is eenvoudig het st_size element van de struct stat gezet door de lstat (of stat) systeem aanroep, afgerond zoals hierboven aangegeven. Met andere woorden, het is consistent met de resultaten die u verkrijgt met ls -l. Onthoud dat de `%k' en `%b' formaat specificaties van -printf ijle bestanden anders behandelen. Het 'b' achtervoegsel duid altijd 512-byte blokken aan en nooit 1024-byte blokken, dit is anders dan het gedrag van -ls.
The + and - prefixes signify greater than and less than, as usual; i.e., an exact size of n units does not match. Bear in mind that the size is rounded up to the next unit. Therefore -size -1M is not equivalent to -size -1048576c. The former only matches empty files, the latter matches files from 0 to 1,048,575 bytes.
Altijd waar.

Bestand is van soort c:
blok (gebufferd) speciaal
karakter (ongebufferd) speciaal
directory
benoemde pijp (FIFO)
normaal bestand
symbolische koppeling; dit is nooit waar als de -L optie of de -follow optie gezet zijn, behalve als de symbolische koppeling defect is. Indien u wenst te zoeken naar symbolische koppelingen terwijl -L gezet is, gebruik dan -xtype.
socket
deur (Solaris)
To search for more than one type at once, you can supply the combined list of type letters separated by a comma `,' (GNU extension).
Het numerieke gebruiker ID van het bestand is kleiner dan, groter dan of exact n.

Het bestand werd voor het laatste benadert minder dan, meer dan of exact n dagen nadat zijn status voor het laatst werd veranderd.

Bestand is eigendom van gebruiker gnaam (numeriek gebruiker ID toegestaan).

See -path. This alternative is less portable than -path.

Matches files which are writable by the current user. This takes into account access control lists and other permissions artefacts which the -perm test ignores. This test makes use of the access(2) system call, and so can be fooled by NFS servers which do UID mapping (or root-squashing), since many systems implement access(2) in the client's kernel and so cannot make use of the UID mapping information held on the server.

Hetzelfde als -type tenzij het bestand een symbolische koppeling is. Voor symbolische koppelingen: als de -H of -P optie niet gegeven werd, `waar' als het bestand een koppeling is naar een bestand van soort c; als de -L optie werd gegeven, `waar' als c gelijk is aan `l'. Met andere woorden, voor symbolische koppelingen test -xtype het type bestand dat -type niet test.
(alleen SELinux) De veiligheid context van het bestand past op glob patroon.

ACTIES

Verwijder bestanden; waar als het verwijderen lukte. Als het verwijderen mislukte, dan wordt een foutmelding gegeven, en zal de beëindigingsstatus van find niet-nul zijn (zodra het uiteindelijk eindigt).

Warning: Don't forget that find evaluates the command line as an expression, so putting -delete first will make find try to delete everything below the starting points you specified.

The use of the -delete action on the command line automatically turns on the -depth option. As in turn -depth makes -prune ineffective, the -delete action cannot usefully be combined with -prune.

Often, the user might want to test a find command line with -print prior to adding -delete for the actual removal run. To avoid surprising results, it is usually best to remember to use -depth explicitly during those earlier test runs.

De -delete actie zal falen een map te wissen, behalve als deze leeg is.

Samen met de -ignore_readdir_race optie zal find fouten van de -delete actie negeren in het geval dat het bestand verdween na het moment dat de ouder map werd gelezen: het zal geen fout diagnose tonen, de afsluit code niet naar niet-nul veranderen, bovendien zal de afsluit code van -delete actie 'waar' zijn.

-exec opdracht ;
Voer opdracht uit; `waar' als 0 status teruggegeven is. Alle volgende argumenten voor find worden als argumenten voor de opdracht genomen totdat een argument bestaande uit `;' wordt tegengekomen. De string `{}' wordt vervangen door de huidige bestandsnaam die wordt verwerkt, overal waar het opduikt in de argumenten voor de opdracht, niet alleen in argumenten waar het alleen is, zoals in sommige versies van find. Allebei deze constructies moeten misschien ge-escape't (met een `\') of geciteerd worden om ze te beschermen tegen interpretatie door de shell. De opdracht wordt uitgevoerd in de start map.

-exec opdracht {} +
This variant of the -exec action runs the specified command on the selected files, but the command line is built by appending each selected file name at the end; the total number of invocations of the command will be much less than the number of matched files. The command line is built in much the same way that xargs builds its command lines. Only one instance of `{}' is allowed within the command, and it must appear at the end, immediately before the `+'; it needs to be escaped (with a `\') or quoted to protect it from interpretation by the shell. The command is executed in the starting directory. If any invocation with the `+' form returns a non-zero value as exit status, then find returns a non-zero exit status. If find encounters an error, this can sometimes cause an immediate exit, so some pending commands may not be run at all. For this reason -exec my-command ... {} + -quit may not result in my-command actually being run. This variant of -exec always returns true.

Like -exec, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which you started find. As with -exec, the {} should be quoted if find is being invoked from a shell. This a much more secure method for invoking commands, as it avoids race conditions during resolution of the paths to the matched files. As with the -exec action, the `+' form of -execdir will build a command line to process more than one matched file, but any given invocation of command will only list files that exist in the same subdirectory. If you use this option, you must ensure that your PATH environment variable does not reference `.'; otherwise, an attacker can run any commands they like by leaving an appropriately-named file in a directory in which you will run -execdir. The same applies to having entries in PATH which are empty or which are not absolute directory names. If any invocation with the `+' form returns a non-zero value as exit status, then find returns a non-zero exit status. If find encounters an error, this can sometimes cause an immediate exit, so some pending commands may not be run at all. The result of the action depends on whether the + or the ; variant is being used; -execdir command {} + always returns true, while -execdir command {} ; returns true only if command returns 0.

Waar; net als -ls maar schrijf naar bestand zoals -fprint. Het uitvoer bestand wordt altijd gemaakt, zelfs als het predicaat nooit past. Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe ongebruikelijke tekens in bestandsnamen worden afgehandeld.

Waar; schrijf de volle bestandsnaam naar bestand bestand. Als bestand niet bestaat als find draait, wordt het gemaakt; als het bestaat, wordt het afgehakt. De bestandsnamen “/dev/stdout” en “/dev/stderr” worden speciaal behandeld; zij verwijzen naar de standaard uitvoer en standaard fout uitvoer, respectievelijk. Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe ongebruikelijke tekens in bestandsnamen worden afgehandeld.

Waar; zoals -print0 maar schrijf naar bestand zoals -fprint. Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe ongebruikelijke tekens in bestandsnamen worden afgehandeld.

Waar; zoals -printf maar schrijf naar bestand zoals -fprint. Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe ongebruikelijke tekens in bestandsnamen worden afgehandeld.

'Waar'; toon het huidige bestand in ls -dils vorm op standaard uitvoer. Het aantal blokken is in blokken van 1 KB, tenzij de omgevingsvariabele POSIXLY_CORRECT gezet is, in welk geval 512-byte blokken worden gebruikt. Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe niet gebruikelijke tekens in bestandsnamen worden afgehandeld.

Zoals -exec maar vraag de gebruiker eerst. Voer het commando uit als de gebruiker akkoord is. Retourneer anders 'onwaar'. Als het commando wordt uitgevoerd, wordt zijn standaard invoer omgeleid van /dev/null. Deze actie mag niet tegelijkertijd met de -files0-from optie worden opgegeven

The response to the prompt is matched against a pair of regular expressions to determine if it is an affirmative or negative response. This regular expression is obtained from the system if the POSIXLY_CORRECT environment variable is set, or otherwise from find's message translations. If the system has no suitable definition, find's own definition will be used. In either case, the interpretation of the regular expression itself will be affected by the environment variables LC_CTYPE (character classes) and LC_COLLATE (character ranges and equivalence classes).

Zoals -execdir maar vraag de gebruiker eerst op dezelfde manier als voor -ok. Retourneer 'onwaar' als de gebruiker niet akkoord is . Als het commando wordt uitgevoerd, wordt zijn standaard invoer omgeleid van /dev/null. Deze actie mag niet tegelijkertijd met de -files0-from optie worden opgegeven.

Waar; druk de volle bestandsnaam af op de standaard uitvoer, gevolgd door een nieuwe regel. Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe ongebruikelijke tekens in bestandsnamen worden afgehandeld.

Waar; druk de volle bestandsnaam af op de standaard uitvoer, gevolgd door een nul karakter. Dit laat bestandsnamen die nieuwe regels bevatten toe om goed geïnterpreteerd te kunnen worden door programma's die de find uitvoer verwerken.

'Waar'; druk vorm af op de standaard uitvoer, interpreteer `\' stuurcodes en `%' richtlijnen. Veld breedten en precisie kunnen opgegeven worden zoals bij de printf(3) C functie. Merk op dat veel velden worden getoond als %s inplaats van %d, en dit kan beteken dat vlaggen niet werken zoals u zou verwachten. Dit betekent ok dat de '-' vlag niet werkt (dit dwingt velden links uitgelijnd te zijn). Niet zoals -print, voegt -printf geen nieuwe regel toe aan het einde van het string. De stuurcodes en richtlijnen zijn:
Alarm bel.
Backspace.
Stop afdrukken van deze vorm onmiddellijk en spoel de uitvoer door.
Nieuwe bladzijde.
Nieuwe regel.
Wagen terugloop.
Horizontale tabulatie.
Verticale tab.
\0
ASCII NUL.
\\
Een letterlijke backslash (`\').
Het teken wiens ASCII code NNN (octaal) is.

Een `\' karakter gevolgd door een ander karakter wordt behandeld als een normaal karakter, zodat ze allebei afgedrukt worden.

%%
Een letterlijk procent teken.
%a
Laatste toegangstijd van het bestand in formaat zoals teruggegeven door de C ctime(3) functie.
%Ak
Laatste toegangstijd van het bestand in de vorm gegeven door k, die of `@' is of een richtlijn voor de C strftime(3) functie. De mogelijke waardes voor k worden onder gegeven; sommige ervan zijn misschien niet beschikbaar op alle systemen, ten gevolge van verschillen in `strftime' tussen systemen.
@
seconden sinds 1 januari 1970, 00:00 GMT, met een fractie.

Tijd velden:

uur (00...23)
het uur (01..12)
uur ( 0..23)
uur ( 1..12)
minuut (00...59)
locale AM of PM
tijd, 12-uur (hh:mm:ss [AP]M)
Seconden (00.00 .. 61.00). Er is een fractie.
tijd, 24-uur (hh:mm:ss.xxxxxxxxxx)
+
Datum en tijd, gescheiden door een '+', bijvoorbeeld `2004-04-28+22:22:05.0'. Dit is een GNU uitbreiding. De tijd wordt gegeven in de huidige tijd zone (die beïnvloed kan zijn door het zetten van de TZ omgevingsvariabele). Het seconden veld bevat een fractie.
locale tijd voorstelling (H:M:S). Het seconden veld bevat een fractie.
tijd zone (o.a. CET), of niets als de tijd zone niet vast te stellen is

Datum velden:

locale afgekorte weekdag naam (Zon..Zat)
locale volle weekdag naam, variabele lengte (Zondag..Zaterdag)
locale afgekorte maand naam (jan..dec)
locale volle maand naam, variabele lengte (januari..december)
locale datum en tijd (Zat Nov 04 12:02:33 CET 1989). Het formaat is hetzelfde als voor ctime(3) en om compatibiliteit te waarborgen met dat formaat, is er geen fractie in het seconden veld.
dag van de maand (01..31)
datum (mm/dd/jj)
datum (jjjj-mm-dd)
hetzelfde als b
de dag in het jaar (001...366)
de maand (01...12)
week nummer van jaar met zondag als eerste dag van de week (00..53)
dag van de week (0..6)
week nummer van jaar met maandag als eerste dag van de week (00..53)
locale datum voorstelling (mm/dd/jj)
de laatste twee cijfers van het jaar (00...99)
jaar (1970...)
%b
De hoeveelheid schijfruimte gebruikt voor dit bestand in 512-byte blokken. Omdat schijfruimte wordt toegewezen in veelvouden van de grootte van bestandssysteem blokken is deze normaliter groter dan %s/512, maar het kan ook kleiner zijn als het een ijl bestand is.

%Bk
File's birth time, i.e., its creation time, in the format specified by k, which is the same as for %A. This directive produces an empty string if the underlying operating system or filesystem does not support birth times.

%c
Laatste toegangstijd van het bestand in formaat zoals teruggegeven door de C ctime(3) functie.
%Ck
Bestand laatste status veranderingstijd in de vorm opgegeven door k, wat hetzelfde is als voor %A.
%d
Diepte van het bestand in de mappen boom; 0 betekend dat het bestand een begin punt is.
%D
The device number on which the file exists (the st_dev field of struct stat), in decimal.
%f
Toon de basisnaam; de bestandsnaam met enige voorafgaand mappen verwijderd (alleen het laatste element). Voor /, is het resultaat `/'. Zie de VOORBEELDEN sectie voor een voorbeeld..

%F
Soort bestandsysteem waar het bestand op staat; deze waarde kan gebruikt worden voor -fstype.
%g
Groep naam van bestand, of numerieke groep ID als de groep geen naam heeft.
%G
Numerieke groep ID van bestand.
%h
Mapnaam; Voorafgaande mappen van bestandsnaam (alle behalve het laatste deel).
%H
Opdrachtregel-argument waaronder het bestand gevonden werd.
%i
inode nummer van het bestand (decimaal).
%k
De grootte van schrijfruimte gebruikt voor dit bestand in 1 KB blokken. Omdat schrijfruimte toegewezen wordt in meervouden van de de bestandssysteem blok grootte is deze meestal groter dan %s/1024, maar ze kan ook kleiner zijn als het bestand een ijl bestand is.
%l
Voorwerp van symbolische koppeling (lege string als bestand geen symbolische koppeling is).
%m
Rechten bits van het bestand (octaal).
%M
Rechten van het bestand (in symbolische vorm, zoals voor ls). Dit directief wordt ondersteund vanaf findutils 4.2.5.
%n
Aantal harde koppelingen voor bestand.
%p
Naam van bestand.
%P
Naam van bestand met de naam van het startpunt waaronder het gevonden werd verwijderd.
%s
Grootte van bestand in bytes.
%S
IJlheid van het bestand.
%t
Laatste aanpassings tijd van bestand in de vorm teruggegeven door de C ctime(3) functie.
%Tk
Laatste aanpassings tijd van bestand in de vorm opgegeven door k, wat hetzelfde is als voor %A.
%u
Gebruiker naam van bestand, of numerieke gebruiker ID als de gebruiker geen naam heeft.
%U
Numerieke gebruiker ID van bestand.
%y
Bestandstype (zoals in ls -l), U=onbekend type (zou niet moeten voorkomen)
%Y
File's type (like %y), plus follow symbolic links: `L'=loop, `N'=nonexistent, `?' for any other error when determining the type of the target of a symbolic link.
%Z
(alleen SELinux) veiligheids context van het bestand.
%{ %[ %(
Reserved for future use.

A `%' character followed by any other character is discarded, but the other character is printed (don't rely on this, as further format characters may be introduced). A `%' at the end of the format argument causes undefined behaviour since there is no following character. In some locales, it may hide your door keys, while in others it may remove the final page from the novel you are reading.

The %m and %d directives support the #, 0 and + flags, but the other directives do not, even if they print numbers. Numeric directives that do not support these flags include G, U, b, D, k and n. The `-' format flag is supported and changes the alignment of a field from right-justified (which is the default) to left-justified.

Zie de ONGEBRUIKELIJKE BESTANDSNAMEN sectie voor informatie over hoe ongebruikelijke tekens in bestandsnamen worden afgehandeld.

'Waar'; als het bestand een map is, daal er dan niet in af. Als -depth werd opgegeven, dan heeft -prune geen effect. Omdat -delete -depth impliceert, is het gebruik van -prune en -delete samen, niet nuttig. Om bijvoorbeeld de map src/emacs en alle bestanden en mappen daaronder over te slaan , en de namen van de gevonden bestanden te tonen, gebruikt u bij voorbeeld:
find . -path ./src/emacs -prune -o -print

Exit immediately (with return value zero if no errors have occurred). This is different to -prune because -prune only applies to the contents of pruned directories, while -quit simply makes find stop immediately. No child processes will be left running. Any command lines which have been built by -exec ... + or -execdir ... + are invoked before the program is exited. After -quit is executed, no more files specified on the command line will be processed. For example, `find /tmp/foo /tmp/bar -print -quit` will print only `/tmp/foo`.
One common use of -quit is to stop searching the file system once we have found what we want. For example, if we want to find just a single file we can do this:
find / -name needle -print -quit

OPERATOREN

Gegeven in volgorde van aflopende voorrang:

( expr )
Dwing volgorde af. Omdat haakjes speciaal zijn voor de shell, moeten ze normaliter tussen aanhalingstekens staan. Veel van de voorbeelden in deze handleiding gebruiken backslashes voor dit doel: `\(...\)' in plaats van `(...)'.

! expr
Waar als expr ongeldig is. Dit teken dient ook beschermd te worden voor interpretatie door de shell.

Hetzelfde als ! expr, maar voldoet niet aan POSIX.

Twee expressies in een rij worden samengevoegd met een impliciete -a; expr2 wordt niet beoordeeld als expr1 `fout' is.

Zelfde als expr1 expr2.

Hetzelfde als expr1 expr2, maar voldoet niet aan POSIX.

Of; expr2 wordt niet beoordeeld als expr1 `waar' is.

Zelfde als expr1 -o expr2.

Lijst; beide expr1 en expr2 worden altijd beoordeeld. De waarde van expr1 wordt genegeerd; de waarde van de lijst is de waarde van expr2. De komma operator kan nuttig zijn voor het zoeken naar diverse verschillende type dingen terwijl het bestandssysteem maar een keer doorlopen wordt. De -fprintf actie kan worden gebruikt om de diverse gevonden items in verschillende uitvoer bestanden te noemen.

Please note that -a when specified implicitly (for example by two tests appearing without an explicit operator between them) or explicitly has higher precedence than -o. This means that find . -name afile -o -name bfile -print will never print afile.

ONGEBRUIKELIJKE BESTANDSNAMEN

Many of the actions of find result in the printing of data which is under the control of other users. This includes file names, sizes, modification times and so forth. File names are a potential problem since they can contain any character except `\0' and `/'. Unusual characters in file names can do unexpected and often undesirable things to your terminal (for example, changing the settings of your function keys on some terminals). Unusual characters are handled differently by various actions, as described below.

Always print the exact filename, unchanged, even if the output is going to a terminal.

Unusual characters are always escaped. White space, backslash, and double quote characters are printed using C-style escaping (for example `\f', `\"'). Other unusual characters are printed using an octal escape. Other printable characters (for -ls and -fls these are the characters between octal 041 and 0176) are printed as-is.

If the output is not going to a terminal, it is printed as-is. Otherwise, the result depends on which directive is in use. The directives %D, %F, %g, %G, %H, %Y, and %y expand to values which are not under control of files' owners, and so are printed as-is. The directives %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u and %U have values which are under the control of files' owners but which cannot be used to send arbitrary data to the terminal, and so these are printed as-is. The directives %f, %h, %l, %p and %P are quoted. This quoting is performed in the same way as for GNU ls. This is not the same quoting mechanism as the one used for -ls and -fls. If you are able to decide what format to use for the output of find then it is normally better to use `\0' as a terminator than to use newline, as file names can contain white space and newline characters. The setting of the LC_CTYPE environment variable is used to determine which characters need to be quoted.

Quoting is handled in the same way as for -printf and -fprintf. If you are using find in a script or in a situation where the matched files might have arbitrary names, you should consider using -print0 instead of -print.

The -ok and -okdir actions print the current filename as-is. This may change in a future release.

VOLDOET AAN

For closest compliance to the POSIX standard, you should set the POSIXLY_CORRECT environment variable. The following options are specified in the POSIX standard (IEEE Std 1003.1-2008, 2016 Edition):

-H
This option is supported.

-L
This option is supported.

This option is supported, but POSIX conformance depends on the POSIX conformance of the system's fnmatch(3) library function. As of findutils-4.2.2, shell metacharacters (`*', `?' or `[]' for example) match a leading `.', because IEEE PASC interpretation 126 requires this. This is a change from previous versions of findutils.

Supported. POSIX specifies `b', `c', `d', `l', `p', `f' and `s'. GNU find also supports `D', representing a Door, where the OS provides these. Furthermore, GNU find allows multiple types to be specified at once in a comma-separated list.

Supported. Interpretation of the response is according to the `yes' and `no' patterns selected by setting the LC_MESSAGES environment variable. When the POSIXLY_CORRECT environment variable is set, these patterns are taken system's definition of a positive (yes) or negative (no) response. See the system's documentation for nl_langinfo(3), in particular YESEXPR and NOEXPR. When POSIXLY_CORRECT is not set, the patterns are instead taken from find's own message catalogue.

Ondersteund. Als het opgegeven bestand een symbolische koppeling is, wordt deze altijd gevolgd. Dit is een verandering vergeleken met het voorgaande gedrag, die de relevante tijd van de symbolische koppeling haalde; zie GESCHIEDENIS hieronder.

Supported. If the POSIXLY_CORRECT environment variable is not set, some mode arguments (for example +a+x) which are not valid in POSIX are supported for backward-compatibility.

The primaries -atime, -ctime, -depth, -exec, -group, -links, -mtime, -nogroup, -nouser, -ok, -path, -print, -prune, -size, -user and -xdev are all supported.

The POSIX standard specifies parentheses `(', `)', negation `!' and the logical AND/OR operators -a and -o.

All other options, predicates, expressions and so forth are extensions beyond the POSIX standard. Many of these extensions are not unique to GNU find, however.

The POSIX standard requires that find detects loops:

The find utility shall detect infinite loops; that is, entering a previously visited directory that is an ancestor of the last file encountered. When it detects an infinite loop, find shall write a diagnostic message to standard error and shall either recover its position in the hierarchy or terminate.

GNU find complies with these requirements. The link count of directories which contain entries which are hard links to an ancestor will often be lower than they otherwise should be. This can mean that GNU find will sometimes optimise away the visiting of a subdirectory which is actually a link to an ancestor. Since find does not actually enter such a subdirectory, it is allowed to avoid emitting a diagnostic message. Although this behaviour may be somewhat confusing, it is unlikely that anybody actually depends on this behaviour. If the leaf optimisation has been turned off with -noleaf, the directory entry will always be examined and the diagnostic message will be issued where it is appropriate. Symbolic links cannot be used to create filesystem cycles as such, but if the -L option or the -follow option is in use, a diagnostic message is issued when find encounters a loop of symbolic links. As with loops containing hard links, the leaf optimisation will often mean that find knows that it doesn't need to call stat() or chdir() on the symbolic link, so this diagnostic is frequently not necessary.

The -d option is supported for compatibility with various BSD systems, but you should use the POSIX-compliant option -depth instead.

De POSIXLY_CORRECT omgevingsvariabele beïnvloed het gedrag van de -regex of -iregex testen niet, omdat deze testen niet gespecificeerd zijn in de POSIX standard.

OMGEVINGSVARIABELEN

Voorziet een standaard waarde voor de internationalisatie variabelen die werden uitgeschakeld of null.

If set to a non-empty string value, override the values of all the other internationalization variables.

The POSIX standard specifies that this variable affects the pattern matching to be used for the -name option. GNU find uses the fnmatch(3) library function, and so support for LC_COLLATE depends on the system library. This variable also affects the interpretation of the response to -ok; while the LC_MESSAGES variable selects the actual pattern used to interpret the response to -ok, the interpretation of any bracket expressions in the pattern will be affected by LC_COLLATE.

This variable affects the treatment of character classes used in regular expressions and also with the -name test, if the system's fnmatch(3) library function supports this. This variable also affects the interpretation of any character classes in the regular expressions used to interpret the response to the prompt issued by -ok. The LC_CTYPE environment variable will also affect which characters are considered to be unprintable when filenames are printed; see the section UNUSUAL FILENAMES.

Bepaald het taalgebied dat gebruikt wordt voor geïnternationaliseerde berichten. Indien de POSIXLY_CORRECT omgevingsvariabele is gezet, dan bepaald deze ook de interpretatie van het antwoord op de prompt, veroorzaakt door de -ok actie.

Bepaald de locatie van de internationale berichten catalogi.

Beïnvloed de mappen die worden doorzocht om de uitvoerbare bestanden te vinden die aangeroepen worden door -exec, -execdir, -ok en -okdir.

Bepaald de blok grootte gebruikt door -ls en -fls. Als POSIXLY_CORRECT werd gezet, dan is de eenheid 512 bytes. Anders zijn het eenheden van 1024 bytes.
Setting this variable also turns off warning messages (that is, implies -nowarn) by default, because POSIX requires that apart from the output for -ok, all messages printed on stderr are diagnostics and must result in a non-zero exit status.
Als POSIXLY_CORRECT niet gezet werd dan wordt -perm +zzz precies zo behandeld als -perm /zzz mits +zzz geen geldige symbolische mode is. Indien POSIXLY_CORRECT is gezet, dan worden deze constructies behandeld als een fout.
Als POSIXLY_CORRECT werd gezet, dan wordt de respons gemaakt door de -ok actie, geïnterpreteerd conform de berichten catalogus van het systeem, in tegenstelling tot de eigen berichten vertalingen van find.

Affects the time zone used for some of the time-related format directives of -printf and -fprintf.

VOORBEELDEN

Simple `find|xargs` approach

Find files named core in or below the directory /tmp and delete them.

$ find /tmp -name core -type f -print | xargs /bin/rm -f
Note that this will work incorrectly if there are any filenames containing newlines, single or double quotes, or spaces.

Safer `find -print0 | xargs -0` approach

Find files named core in or below the directory /tmp and delete them, processing filenames in such a way that file or directory names containing single or double quotes, spaces or newlines are correctly handled.

$ find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
The -name test comes before the -type test in order to avoid having to call stat(2) on every file.

Note that there is still a race between the time find traverses the hierarchy printing the matching filenames, and the time the process executed by xargs works with that file.

Processing arbitrary starting points

Given that another program proggy pre-filters and creates a huge NUL-separated list of files, process those as starting points, and find all regular, empty files among them:

$ proggy | find -files0-from - -maxdepth 0 -type f -empty
The use of `-files0-from -` means to read the names of the starting points from standard input, i.e., from the pipe; and -maxdepth 0 ensures that only explicitly those entries are examined without recursing into directories (in the case one of the starting points is one).

Executing a command for each file

Run file on every file in or below the current directory.

$ find . -type f -exec file '{}' \;
Notice that the braces are enclosed in single quote marks to protect them from interpretation as shell script punctuation. The semicolon is similarly protected by the use of a backslash, though single quotes could have been used in that case also.

In veel gevallen, zou men `-exec ... +` prefereren of nog beter `-execdir ... +` syntax vanwege prestatie en veiligheid redenen.

Traversing the filesystem just once - for 2 different actions

Traverse the filesystem just once, listing set-user-ID files and directories into /root/suid.txt and large files into /root/big.txt.

$ find / \
\( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
\( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

This example uses the line-continuation character '\' on the first two lines to instruct the shell to continue reading the command on the next line.

Searching files by age

Search for files in your home directory which have been modified in the last twenty-four hours.

$ find $HOME -mtime 0
This command works this way because the time since each file was last modified is divided by 24 hours and any remainder is discarded. That means that to match -mtime 0, a file will have to have a modification in the past which is less than 24 hours ago.

Searching files by permissions

Search for files which are executable but not readable.

$ find /sbin /usr/sbin -executable \! -readable -print
Search for files which have read and write permission for their owner, and group, but which other users can read but not write to.

$ find . -perm 664
Files which meet these criteria but have other permissions bits set (for example if someone can execute the file) will not be matched.
Search for files which have read and write permission for their owner and group, and which other users can read, without regard to the presence of any extra permission bits (for example the executable bit).

$ find . -perm -664
This will match a file which has mode 0777, for example.
Search for files which are writable by somebody (their owner, or their group, or anybody else).

$ find . -perm /222
Search for files which are writable by either their owner or their group.

$ find . -perm /220 $ find . -perm /u+w,g+w $ find . -perm /u=w,g=w
All three of these commands do the same thing, but the first one uses the octal representation of the file mode, and the other two use the symbolic form. The files don't have to be writable by both the owner and group to be matched; either will do.
Search for files which are writable by both their owner and their group.

$ find . -perm -220 $ find . -perm -g+w,u+w
Beide commando´s doen hetzelfde.
A more elaborate search on permissions.

$ find . -perm -444 -perm /222 \! -perm /111 $ find . -perm -a+r -perm /a+w \! -perm /a+x
These two commands both search for files that are readable for everybody (-perm -444 or -perm -a+r), have at least one write bit set (-perm /222 or -perm /a+w) but are not executable for anybody (! -perm /111 or ! -perm /a+x respectively).

Pruning - omitting files and subdirectories

Copy the contents of /source-dir to /dest-dir, but omit files and directories named .snapshot (and anything in them). It also omits files or directories whose name ends in `~', but not their contents.

$ cd /source-dir $ find . -name .snapshot -prune -o \( \! -name '*~' -print0 \) \

| cpio -pmd0 /dest-dir

The construct -prune -o \( ... -print0 \) is quite common. The idea here is that the expression before -prune matches things which are to be pruned. However, the -prune action itself returns true, so the following -o ensures that the right hand side is evaluated only for those directories which didn't get pruned (the contents of the pruned directories are not even visited, so their contents are irrelevant). The expression on the right hand side of the -o is in parentheses only for clarity. It emphasises that the -print0 action takes place only for things that didn't have -prune applied to them. Because the default `and' condition between tests binds more tightly than -o, this is the default anyway, but the parentheses help to show what is going on.
Gegeven de volgende map van projecten en hun geassocieerde SCM administratieve mappen, doorzoek op een efficiënte manier de hoofdmappen:

$ find repo/ \
\( -exec test -d '{}/.svn' \; \ -or -exec test -d '{}/.git' \; \ -or -exec test -d '{}/CVS' \; \ \) -print -prune

Voorbeeld uitvoer:

repo/project1/CVS repo/gnu/project2/.svn repo/gnu/project3/.svn repo/gnu/project3/src/.svn repo/project4/.git
In dit voorbeeld, voorkomt -prune het onnodige afdalen in mappen die al ontdekt werden (bij voorbeeld wordt project3/src niet doorzocht omdat we project3/.svn) reeds gevonden werd), maar verzekert wel dat naast gelegen mappen (project2 en project3 gevonden worden.

Andere bruikbare voorbeelden

Zoek voor diverse bestandstypen

$ find /tmp -type f,d,l
Search for files, directories, and symbolic links in the directory /tmp passing these types as a comma-separated list (GNU extension), which is otherwise equivalent to the longer, yet more portable:

$ find /tmp \( -type f -o -type d -o -type l \)
Search for files with the particular name needle and stop immediately when we find the first one.

$ find / -name needle -print -quit
Demonstrate the interpretation of the %f and %h format directives of the -printf action for some corner-cases. Here is an example including some output.

$ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find -maxdepth 0 -printf '[%h][%f]\n' [.][.] [.][..] [][/] [][tmp] [/tmp][TRACE] [.][compile] [compile/64/tests][find]

EIND WAARDE

find exits with status 0 if all files are processed successfully, greater than 0 if errors occur. This is deliberately a very broad description, but if the return value is non-zero, you should not rely on the correctness of the results of find.

When some error occurs, find may stop immediately, without completing all the actions specified. For example, some starting points may not have been examined or some pending program invocations for -exec ... {} + or -execdir ... {} + may not have been performed.

GESCHIEDENIS

As of findutils-4.2.2, shell metacharacters (`*', `?' or `[]' for example) used in filename patterns match a leading `.', because IEEE POSIX interpretation 126 requires this.

As of findutils-4.3.3, -perm /000 now matches all files instead of none.

Nanosecond-resolution timestamps were implemented in findutils-4.3.3.

As of findutils-4.3.11, the -delete action sets find's exit status to a nonzero value when it fails. However, find will not exit immediately. Previously, find's exit status was unaffected by the failure of -delete.

Feature Added in Also occurs in
-files0-from 4.9.0
-newerXY 4.3.3 BSD
-D 4.3.1
-O 4.3.1
-readable 4.3.0
-writable 4.3.0
-executable 4.3.0
-regextype 4.2.24
-exec ... + 4.2.12 POSIX
-execdir 4.2.12 BSD
-okdir 4.2.12
-samefile 4.2.11
-H 4.2.5 POSIX
-L 4.2.5 POSIX
-P 4.2.5 BSD
-delete 4.2.3
-quit 4.2.3
-d 4.2.3 BSD
-wholename 4.2.0
-iwholename 4.2.0
-ignore_readdir_race 4.2.0
-fls 4.0
-ilname 3.8
-iname 3.8
-ipath 3.8
-iregex 3.8

The syntax -perm +MODE was removed in findutils-4.5.12, in favour of -perm /MODE. The +MODE syntax had been deprecated since findutils-4.2.21 which was released in 2005.

NON-BUGS

Operator precedence surprises

Het commando find . -name afile -o -name bfile -print zal nooit afile tonen omdat dit eigenlijk equivalent is aan find . -name afile -o \( -name bfile -a -print \). Merk op dat de prioriteit van -a hoger is dan die van -o en indien geen operator werd opgegeven tussen de testen, -a wordt aangenomen.

“paden moeten de expressie vooraf gaan” fout melding

$ find . -name *.c -print
find: paden moeten aan de expressie vooraf gaan
find: mogelijk een patroon zonder aanhalingstekens na het predicaat `-name'?

This happens when the shell could expand the pattern *.c to more than one file name existing in the current directory, and passing the resulting file names in the command line to find like this:

find . -name frcode.c locate.c word_io.c -print

That command is of course not going to work, because the -name predicate allows exactly only one pattern as argument. Instead of doing things this way, you should enclose the pattern in quotes or escape the wildcard, thus allowing find to use the pattern with the wildcard during the search for file name matching instead of file names expanded by the parent shell:

$ find . -name '*.c' -print
$ find . -name \*.c -print

BUGS

Er bestaan veiligheidsproblemen die inherent zijn aan het gedrag dat de POSIX standaard specificeert voor find, en die daarom ook niet opgelost kunnen worden. Bij voorbeeld is de -exec actie inherent onveilig en daarom zou steeds -execdir gebruikt moeten worden.

De omgevingsvariabele LC_COLLATE heeft geen effect op de -ok actie.

RAPPORTEREN VAN BUGS

Online hulp bij GNU findutils: <https://www.gnu.org/software/findutils/#get-help>
Meld alle vertaalfouten op <https://translationproject.org/team/nl.html>

Rapporteer enig ander onderwerp via het formulier op de GNU Savannah bug site.

Algemene onderwerpen over het GNU findutils pakket worden bediscussieerd op de bug-findutils mail lijst.

COPYRIGHT

Copyright © 1990-2022 Free Software Foundation, Inc. Licentie GPLv3+: GNU GPL versie 3 of later <https://gnu.org/licenses/gpl.html>.
Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden. Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.

ZIE OOK

chmod(1), locate(1), ls(1), updatedb(1), xargs(1), lstat(2), stat(2), ctime(3) fnmatch(3), printf(3), strftime(3), locatedb(5), regex(7)

Volledige documentatie: <https://www.gnu.org/software/findutils/find>
of lokaal beschikbaar via: info find

VERTALING

De Nederlandse vertaling van deze handleiding is geschreven door Jos Boersema <joshb@xs4all.nl>, Mario Blättermann <mario.blaettermann@gmail.com> en Luc Castermans <luc.castermans@gmail.com>

Deze vertaling is vrije documentatie; lees de GNU General Public License Version 3 of later over de Copyright-voorwaarden. Er is geen AANSPRAKELIJKHEID.

Indien U fouten in de vertaling van deze handleiding zou vinden, stuur een e-mail naar debian-l10n-dutch@lists.debian.org.