Find: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
 
(28 mellanliggande sidversioner av samma användare visas inte)
Rad 1: Rad 1:
FIND Handbok för allmänna kommandon FIND(1)
= FIND(1) =
'''Allmänna kommandomanualer'''
'''FIND(1)'''


==== NAMN ====
== NAMN ==
      find - sök efter filer i en kataloghierarki
* find - sök efter filer i en kataloghierarki


==== SYNOPSIS ====
== SYNTAX ==
      hitta [-H] [-L] [-P] [-D debugopts] [-Olevel] [startpunkt...]
* find [-H] [-L] [-P] [-D debugval] [-O nivå] [startpunkt...] [uttryck]
      [uttryck]


==== BESKRIVNING     ====
== BESKRIVNING ==
      Denna manualsida dokumenterar GNU-versionen av find . GNU hitta
* Denna manual sida dokumenterar GNU-versionen av find. GNU find söker igenom katalogträdet med start från varje angiven startpunkt genom att utvärdera det givna uttrycket från vänster till höger, enligt reglerna för prioritetsordning (se avsnitt OPERATORER), tills resultatet är känt (den vänstra sidan är falsk för och-operationer, sann för eller), vid vilken punkt find går vidare till nästa filnamn. Om ingen startpunkt anges, antas '.'.
      söker i katalogträdet som är rotat vid varje given startpunkt
      genom att utvärdera det givna uttrycket från vänster till höger, enligt
      till företrädesreglerna (se avsnitt OPERATÖRER), tills den
      resultatet är känt (vänster sida är falsk för och operationer,
      sant för eller ), vid vilken punkt sökningen går vidare till nästa filnamn.
      Om ingen startpunkt anges, `.' är antaget.


      Om du använder hitta i en miljö där säkerheten är
* Om du använder find i en miljö där säkerheten är viktig (till exempel om du använder den för att söka i kataloger som är skrivbara av andra användare), bör du läsa kapitlet "Säkerhetsöverväganden" i dokumentationen för findutils, som heter Finding Files och kommer med findutils. Detta dokument innehåller också mycket mer detaljer och diskussion än denna manual, så det kan vara en mer användbar informationskälla.
      viktigt (till exempel om du använder det för att söka i kataloger
      som är skrivbara av andra användare), bör du läsa avsnittet `Säkerhet
      Övervägandens kapitel i findutils-dokumentationen, som är
      kallas Finding Files och kommer med findutils. Det dokumentet
      innehåller också mycket mer detaljer och diskussion än denna manual
      sida, så du kanske tycker att den är en mer användbar informationskälla.


==== ALTERNATIV         ====
== ALTERNATIV ==
      Alternativen -H , -L och -P styr behandlingen av symboliska
* Alternativen -H, -L och -P styr behandlingen av symboliska länkar. Kommandoradsargument efter dessa tas att vara namn på filer eller kataloger som ska undersökas, upp till det första argumentet som börjar med '-', eller argumentet '(' eller '!'. Detta argument och eventuella efterföljande argument tas att vara uttrycket som beskriver vad som ska sökas efter. Om inga sökvägar anges, används den aktuella katalogen. Om inget uttryck anges, används uttrycket -print (men du bör troligen överväga att använda -print0 istället).
      länkar. Kommandoradsargument efter dessa anses vara
      namn på filer eller kataloger som ska undersökas, upp till den första
      argument som börjar med `-', eller argumentet `(' eller `!'. Det
      argument och alla följande argument anses vara
      uttryck som beskriver vad som ska sökas efter. Om inga stigar
      ges, används den aktuella katalogen. Om inget uttryck ärgivet , används  
      uttrycket -print (men du borde förmodligen
      överväg att använda -print0 istället, ändå).


      Den här manualsidan talar om `alternativ' i uttrycket
* Denna manual sida talar om "alternativ" inom uttryckslistan. Dessa alternativ styr beteendet hos find men anges omedelbart efter det sista sökvägsnamnet. De fem "verkliga" alternativen -H, -L, -P, -D och -O måste dyka upp före det första sökvägsnamnet, om de alls ska användas. En dubbel bindestreck -- kan teoretiskt användas för att signalera att återstående argument inte är alternativ, men detta fungerar egentligen inte på grund av sättet find avgör slutet på de efterföljande sökvägsargumenten: det gör det genom att läsa tills ett uttrycksargument kommer (vilket också börjar med ett '-'). Om ett sökvägsargument skulle börja med ett '-', skulle find behandla det som ett uttrycksargument istället. Därför är det generellt säkrare att förprefixera jokertecken eller tveksamma sökvägsnamn med antingen './' eller använda absoluta sökvägsnamn som börjar med '/'. Alternativt är det generellt säkert, även om det inte är portabelt, att använda GNU-alternativet -files0-from för att skicka godtyckliga startpunkter till find.
      lista. Dessa alternativ styr beteendet för hitta men är
      anges omedelbart efter det sista sökvägsnamnet. De fem "riktiga"
      alternativen -H , -L , -P , -D och -O måste visas före den första sökvägen
      namn, om alls. Ett dubbelstreck -- skulle teoretiskt kunna användas till
      signalera att eventuella kvarvarande argument inte är alternativ, utan detta
      fungerar inte riktigt på grund av hur hitta bestämmer slutet på
      följande vägargument: den gör det genom att läsa tills en
      uttrycksargument kommer (som också börjar med en `-'). Nu,
      om ett sökvägsargument skulle börja med ett "-", skulle find behandla
      det som uttrycksargument istället. Således för att säkerställa att alla
      startpunkter tas som sådana, och särskilt för att förhindra det
      jokerteckenmönster utökade av det anropande skalet är det inte
      felaktigt behandlas som uttrycksargument är det i allmänhet säkrare
      för att prefixa jokertecken eller tvivelaktiga sökvägsnamn med antingen `./' eller till
      använd absoluta sökvägsnamn som börjar med '/'. Alternativt är det
      i allmänhet säker men icke-portabel att använda GNU-alternativet
      -filer0-från för att passera godtyckliga startpunkter för att hitta .


      -P Följ aldrig symboliska länkar. Detta är standard
* -P Följer aldrig symboliska länkar. Detta är standardbeteendet. När find undersöker eller skriver ut information om filer, och filen är en symbolisk länk, ska informationen som används tas från den symboliska länkens egna egenskaper.
              beteende. När hitta undersöker eller skriver ut information om
              filer, och filen är en symbolisk länk, informationen
              som används ska hämtas från det symboliskas egenskaper
              länken själv.


      -L Följ symboliska länkar. När hitta undersöker eller utskrifter
* -L Följer symboliska länkar. När find undersöker eller skriver ut information om filer, ska informationen som används tas från egenskaperna hos filen som länken pekar på, inte från länken själv (såvida det inte är en bruten symbolisk länk eller find inte kan undersöka filen som länken pekar på). Användning av detta alternativ implicerar -noleaf. Om du senare använder -P-alternativet kommer -noleaf fortfarande att vara i kraft. Om -L är i kraft och find upptäcker en symbolisk länk till en underkatalog under sin sökning, kommer underkatalogen som pekas ut av den symboliska länken att undersökas.
              information om filer ska den information som används vara
              hämtat från egenskaperna för filen som länken till
              poäng, inte från själva länken (såvida den inte är trasig
              symbolisk länk eller hitta kan inte granska filen till
              som länken pekar på). Användning av detta alternativ innebär
              - noleaf . Om du senare använder alternativet -P , kommer -noleaf att göra det
              fortfarande vara i kraft. Om -L är i kraft och hitta upptäcker
              en symbolisk länk till en underkatalog under dess sökning, den
              underkatalog som pekas av den symboliska länken kommer att vara
              letade.


              När alternativet -L är aktivt kommer predikatet -type att göra det
* -H Följer inte symboliska länkar, förutom vid bearbetning av kommandoradsargument. När find undersöker eller skriver ut information om filer, ska informationen som används tas från den symboliska länkens egna egenskaper. Det enda undantaget från detta beteende är när en fil som specificeras på kommandoraden är en symbolisk länk och länken kan lösas. I den situationen tas informationen från det som länken pekar på (dvs. länken följs). Informationen om länken själv används som en reserv om filen som länken pekar på inte kan undersökas. Om -H är i kraft och en av sökvägarna som specificeras på kommandoraden är en symbolisk länk till en katalog, kommer innehållet i den katalogen att undersökas (även om förstås -maxdepth 0 skulle förhindra detta).
              alltid matcha mot den typ av fil som en symbolisk
              länken pekar på snarare än själva länken (om inte
              symbolisk länk är bruten). Handlingar som kan orsaka symboliska
              länkar som bryts medan find körs (för
              exempel -delete ) kan ge upphov till förvirrande beteende.
              Att använda -L gör att -lname och -ilname predikaten alltid
              att returnera falskt.


      -H Följ inte symboliska länkar, förutom när du bearbetar
* Om fler än ett av -H, -L och -P specificeras, åsidosätter varje de andra; den sista som dyker upp på kommandoraden tar effekt. Eftersom det är standarden bör -P-alternativet anses vara i kraft såvida inte antingen -H eller -L specificeras.
              kommandoradsargument. När hitta undersöker eller utskrifter
              information om filer ska den information som används vara
              hämtat från egenskaperna hos själva den symboliska länken.
              Det enda undantaget från detta beteende är när en fil
              som anges på kommandoraden är en symbolisk länk, och
              länk kan lösas. För den situationen, informationen
              som används är hämtat från vad länken än pekar på (det vill säga,
              länken följs). Informationen om länken
              sig själv används som en reserv om filen pekas på av
              symbolisk länk kan inte undersökas. Om -H är i kraft och
              en av sökvägarna som anges på kommandoraden är a
              symbolisk länk till en katalog, innehållet i den
              katalogen kommer att undersökas (men naturligtvis -maxdepth 0
              skulle förhindra detta).


      Om mer än en av -H , -L och -P anges, åsidosätter var och en
* GNU find gör ofta filundersökningar under bearbetningen av själva kommandoraden, innan någon sökning har börjat. Dessa alternativ påverkar också hur dessa argument behandlas. Specifikt finns det ett antal tester som jämför filer som listas på kommandoraden mot en fil vi för närvarande överväger. I varje fall kommer den specificerade filen på kommandoraden att ha undersökts och vissa av dess egenskaper kommer att ha sparats. Om den namngivna filen faktiskt är en symbolisk länk och -P-alternativet är i kraft (eller om varken -H eller -L specificerades), kommer informationen som används för jämförelsen att tas från den symboliska länkens egenskaper. Annars tas den från egenskaperna hos filen som länken pekar på. Om find inte kan följa länken (till exempel på grund av att det saknar tillräckliga behörigheter eller om länken pekar på en obefintlig fil) kommer egenskaperna hos länken själv att användas.
      de andra; den sista som visas på kommandoraden tar
      effekt. Eftersom det är standard, bör alternativet -P vara
      anses vara i kraft om inte antingen -H eller -L anges.


      GNU hittar ofta statistikfiler under bearbetningen av
* När -H- eller -L-alternativen är i kraft, kommer alla symboliska länkar som anges som argument för -newer att lösas upp, och tidsstämpeln tas från filen som den symboliska länken pekar på. Samma övervägande gäller för -newerXY, -anewer och -cnewer.
      kommandoraden innan någon sökning har börjat. Dessa
      alternativen påverkar också hur dessa argument behandlas.
      Specifikt finns det ett antal tester som jämför filer
      listad på kommandoraden mot en fil vi är för närvarande
      med tanke på. I varje fall, filen som anges på kommandot
      linje kommer att ha undersökts och några av dess egenskaper kommer att ha
      blivit räddad. Om den namngivna filen i själva verket är en symbolisk länk, och
      alternativet -P är i kraft (eller om varken -H eller -L var det
      specificeras), kommer den information som används för jämförelsen att tas
      från egenskaperna hos den symboliska länken. Annars blir det
      hämtat från egenskaperna för filen som länken pekar på. Om
      find kan inte följa länken (till exempel för att den har
      otillräckliga privilegier eller länken pekar på en fil som inte finns)
      egenskaperna för själva länken kommer att användas.


      När alternativen -H eller -L är aktiva, kan alla symboliska länkar
* -follow alternativet har en liknande effekt som -L, även om det träder i kraft vid den punkt där det dyker upp (dvs. om -L inte används men -follow är, kommer alla symboliska länkar som dyker upp efter -follow på kommandoraden att lösas upp, och de före det kommer inte att göra det).
      listas som argumentet för -newer kommer att avreferens, och
      tidsstämpel kommer att tas från filen som den symboliska länken till
      poäng. Samma hänsyn gäller för -newerXY , -anewer och
        -cnewer .


      Alternativet -follow har en liknande effekt som -L , även om det krävs
* -D debugval Skriv ut diagnostisk information; detta kan vara till hjälp för att diagnostisera problem med varför find inte gör vad du vill. Listan över debug-alternativ ska vara kommaseparerad. Kompatibiliteten för debug-alternativen garanteras inte mellan versioner av findutils. För en komplett lista över giltiga debug-alternativ, se utdata från find -D help. Giltiga debug-alternativ inkluderar:
      effekt vid den punkt där den visas (det vill säga om -L inte används
      men -follow är alla symboliska länkar som visas efter -follow på
      kommandoraden kommer att avhänvisas, och de före det inte).


      -D felsöker
** exec  Visa diagnostisk information relaterad till -exec, -execdir, -ok och -okdir
              Skriv ut diagnostisk information; detta kan vara till hjälp
** opt  Skriver ut diagnostisk information relaterad till optimeringen av uttrycksträdet; se -O alternativet.
              diagnostisera problem med varför hitta inte gör vad du
** rates  Skriver ut en sammanfattning som visar hur ofta varje predikat lyckades eller misslyckades.
              vilja. Listan över felsökningsalternativ ska vara komma
** search  Navigera katalogträdet verbalt.
              separerat. Kompatibiliteten för felsökningsalternativen är inte
** stat  Skriv ut meddelanden när filer undersöks med stat- och lstat-systemanropen. Find-programmet försöker minimera sådana anrop.
              garanteras mellan releaser av findutils. För en komplett
** tree  Visa uttrycksträdet i dess ursprungliga och optimerade form.
              lista över giltiga felsökningsalternativ, se utdata från find
** all  Aktivera alla andra debug-alternativ (utom help).
              -D help . Giltiga felsökningsalternativ inkluderar
** help  Förklara debug-alternativen.


              exec Visa diagnostisk information relaterad till -exec,
* -O nivå Aktiverar frågeoptimering. Find-programmet omordnar tester för att påskynda utförandet samtidigt som den övergripande effekten bevaras; det vill säga att predikat med sidoeffekter inte omordnas i förhållande till varandra. De optimeringar som utförs på varje optimeringsnivå är som följer.
                    -execdir, -ok och -okdir


              opt Skriver ut diagnostisk information relaterad till
0 Motsvarar optimeringsnivå 1.
                    optimering av uttrycksträdet; se -O
1 Detta är standardoptimeringsnivån och motsvarar det traditionella beteendet. Uttryck omordnas så att tester baserade enbart på filnamn (till exempel -name och -regex) utförs först.
                    alternativ.
2 Eventuella -type eller -xtype tester utförs efter eventuella tester baserade enbart på filnamn, men före några tester som kräver information från inode. På många moderna versioner av Unix returneras filtyper av readdir(), så dessa predikat är snabbare att utvärdera än predikat som först måste stat-filen. Om du använder -fstype FOO-predikatet och specificerar ett filsystemtyp FOO som inte är känt (dvs. finns i `/etc/mtab') när find startar, motsvarar det predikatet -false.
3 På denna optimeringsnivå aktiveras den fullständiga kostnadsbaserade frågeoptimeraren. Ordningen på tester modifieras så att billiga (dvs. snabba) tester utförs först och dyrare utförs senare om det behövs. Inom varje kostnadsband utvärderas predikat tidigare eller senare beroende på om de sannolikt kommer att lyckas eller inte. För -o utvärderas predikat som sannolikt kommer att lyckas tidigare, och för -a utvärderas predikat som sannolikt kommer att misslyckas tidigare.


              priser Skriver ut en sammanfattning som anger hur ofta varje
* Den kostnadsbaserade optimeraren har en fast idé om hur sannolikt det är att ett givet test lyckas. I vissa fall tar sannolikheten hänsyn till den specifika naturen av testet (till exempel antas -type f vara mer sannolikt att lyckas än -type c). Den kostnadsbaserade optimeraren utvärderas för närvarande. Om det inte faktiskt förbättrar find-prestandan, kommer den att tas bort igen. Däremot kan optimeringar som visar sig vara pålitliga, robusta och effektiva aktiveras vid lägre optimeringsnivåer över tid. Standardbeteendet (dvs. optimeringsnivå 1) kommer dock inte att ändras i 4.3.x-versionen. Findutils-testserien kör alla tester på find vid varje optimeringsnivå och säkerställer att resultatet är detsamma.
                    predikat lyckades eller misslyckades.


              search Navigera utförligt i katalogträdet.
Omordningen av operationer som utförs av den kostnadsbaserade optimeraren kan resultera i användar-synlig beteendeförändring. Till exempel är predikaten -readable och -empty känsliga för omordning. Om de körs i ordningen -empty -readable kommer ett felmeddelande att utfärdas för oläsliga kataloger. Om de körs i ordningen -readable -empty kommer inget felmeddelande att utfärdas. Detta är anledningen till att sådan omordning av operationer inte utförs vid standardoptimeringsnivån.


            stat Skriv ut meddelanden som filer undersöks med stat-
== UTTRYCK ==
            och lstat -systemanropen. Sökprogrammet försöker
* Den del av kommandoraden efter listan över startpunkter är uttrycket. Detta är en typ av frågespecifikation som beskriver hur vi matchar filer och vad vi gör med de filer som matchades. Ett uttryck består av en sekvens av saker:
            minimera sådana samtal.


              tree Visa uttrycksträdet i dess original och
** Test  Test returnerar ett sant eller falskt värde, vanligtvis på grundval av någon egenskap hos en fil vi överväger. Testet -empty är till exempel sant endast när den aktuella filen är tom.
                    optimerad form.
** Åtgärder  Åtgärder har sidoeffekter (till exempel att skriva ut något på standardutgången) och returnerar antingen sant eller falskt, vanligtvis baserat på om de är framgångsrika eller inte. Åtgärden -print skriver till exempel ut namnet på den aktuella filen på standardutgången.
** Globala alternativ  Globala alternativ påverkar utförandet av tester och åtgärder som specificerats på någon del av kommandoraden. Globala alternativ returnerar alltid sant. Alternativet -depth gör till exempel att find traverserar filsystemet i en djup-först ordning.
** Positionella alternativ  Positionella alternativ påverkar endast tester eller åtgärder som följer dem. Positionella alternativ returnerar alltid sant. Alternativet -regextype är till exempel positionellt, och specificerar den reguljära uttrycks dialekten för reguljära uttryck som förekommer senare på kommandoraden.
** Operatorer  Operatorer sammanfogar de andra objekten inom uttrycket. De inkluderar till exempel -o (vilket betyder logiskt ELLER) och -a (vilket betyder logiskt OCH). Där en operator saknas, antas -a.


              all Aktivera alla andra felsökningsalternativ (men hjälp ).
* Åtgärden -print utförs på alla filer för vilka hela uttrycket är sant, om det inte innehåller en åtgärd förutom -prune eller -quit. Åtgärder som förhindrar standard -print är -delete, -exec, -execdir, -ok, -okdir, -fls, -fprint, -fprintf, -ls, -print och -printf.


              help Förklara felsökningsalternativen.
* Åtgärden -delete fungerar också som ett alternativ (eftersom den implicerar -depth).


      -Olevel
= POSITIONELLA ALTERNATIV =
              Möjliggör frågeoptimering. Sökprogrammet ordnar om
* Positionella alternativ returnerar alltid sant. De påverkar endast tester som förekommer senare kommandoraden.
              tester för att påskynda exekveringen samtidigt som helheten bevaras
              effekt; det vill säga predikat med biverkningar är det inte
              omordnade i förhållande till varandra. Optimeringarna
              utförda varje optimeringsnivå är som följer.


              0 Motsvarar optimeringsnivå 1.
* -daystart  Mäter tider (för -amin, -atime, -cmin, -ctime, -mmin och -mtime) från början av idag snarare än från 24 timmar sedan. Detta alternativ påverkar endast tester som visas senare på kommandoraden.
* -follow  Avrådes från att använda; använd istället -L-alternativet. Avföljer symboliska länkar. Implicerar -noleaf. Alternativet -follow påverkar endast de tester som visas efter det på kommandoraden. Om inte -H eller -L-alternativet har specificerats, ändrar positionen för -follow-alternativet beteendet hos -newer-predikatet; alla filer som listas som argument för -newer kommer att avföljas om de är symboliska länkar. Samma övervägande gäller för -newerXY, -anewer och -cnewer. På samma sätt kommer predikatet -type alltid att matcha mot typen av filen som en symbolisk länk pekar på snarare än länken själv. Att använda -follow gör att predikaten -lname och -ilname alltid returnerar falskt.
* -regextype typ  Ändrar den reguljära uttryckssyntax som förstås av -regex och -iregex tester som förekommer senare på kommandoraden. För att se vilka reguljära uttryckstyper som är kända, använd -regextype help. Texinfo-dokumentationen (se SE OCKSÅ) förklarar betydelsen av och skillnaderna mellan de olika typerna av reguljära uttryck. Om du inte använder detta alternativ, beter sig find som om reguljärt uttryckstypen emacs hade specificerats.
* -warn, -nowarn  Slå på eller av varningsmeddelanden. Dessa varningar gäller endast för kommandoradsanvändning, inte för några tillstånd som find kan stöta på när den söker kataloger. Standardbeteendet motsvarar -warn om standardinmatningen är en tty, och till -nowarn annars. Om ett varningsmeddelande som rör kommandoradsanvändning produceras påverkas inte find's exitstatus. Om miljövariabeln POSIXLY_CORRECT är inställd, och -warn också används, är det inte specificerat vilka, om några, varningar som kommer att vara aktiva.


              1 Detta är standardoptimeringsnivån och
= GLOBALA ALTERNATIV =
                    motsvarar det traditionella beteendet.
* Globala alternativ returnerar alltid sant. Globala alternativ träder i kraft även för tester som förekommer tidigare kommandoraden. För att undvika förvirring bör globala alternativ specificeras kommandoraden efter listan med startpunkter, precis före det första testet, det positionella alternativet eller åtgärden. Om du specificerar ett globalt alternativ på något annat ställe, kommer find att ge ett varningsmeddelande som förklarar att detta kan vara förvirrande.
                    Uttrycken ordnas om så att endast tester baseras
                    namnen filer (till exempel -name och
                      -regex ) utförs först.


              2 Alla -type- eller -xtype- tester utförs efter någon
* De globala alternativen förekommer efter listan med startpunkter, och är därför inte samma typ av alternativ som till exempel -L.
                    tester endast baserat på filnamnen, men tidigare
                    alla tester som kräver information från inoden.
                    På många moderna versioner av Unix finns filtyper
                    returneras av readdir() och är dessa predikat
                    snabbare att utvärdera än predikat som behöver
                    ange filen först. Om du använder -fstype FOO-
                    predikatet och anger ett filsystem typ FOO som
                    är inte känd (det vill säga finns i `/etc/mtab') på
                    tidfyndet börjar, det predikatet är ekvivalent
                    till -falsk .


              3 På denna optimeringsnivå är den fulla kostnadsbaserad
* -d: En synonym för -depth, för kompatibilitet med FreeBSD, NetBSD, MacOS X och OpenBSD.
                    frågeoptimeraren är aktiverad. Provordningen är
                    modifierad så att billiga (dvs snabba) tester är
                    utförs först och dyrare är
                    utförs senare vid behov. Inom varje kostnad
                    band, predikat utvärderas tidigare eller senare
                    beroende på om de sannolikt kommer att lyckas eller
                    inte. För -o , predikat som sannolikt gör det
                    lyckas utvärderas tidigare, och för -a ,
                    predikat som sannolikt kommer att misslyckas utvärderas
                    tidigare.


              Den kostnadsbaserade optimeraren har en fast uppfattning om hur troligt det är
* -depth: Bearbeta innehållet i varje katalog innan katalogen själv. Åtgärden -delete implicerar också -depth.
              varje givet test ska lyckas. I vissa fall
              sannolikhet tar hänsyn till den specifika karaktären av
              test (till exempel, -typ f antas vara mer sannolikt
              lyckas än -typ c ). Den kostnadsbaserade optimeraren är
              för närvarande utvärderas. Om det inte gör det faktiskt
              förbättra prestandan för find kommer den att tas bort igen.
              Omvänt, optimeringar som visar sig vara tillförlitliga,
              robust och effektiv kan aktiveras vid lägre optimering
              nivåer över tid. Men standardbeteendet (dvs
              optimeringsnivå 1) kommer inte att ändras i 4.3.x
              släppserie. Findutils testsvit kör alla
              testar på hitta på varje optimeringsnivå och säkerställer att
              resultatet är detsamma.
EXPRESSION        topp
      Den del av kommandoraden efter listan med startpunkter är
      uttrycket . _ Detta är en sorts frågespecifikation som beskriver
      hur vi matchar filer och vad vi gör med de filer som fanns
      matchade. Ett uttryck är sammansatt av en sekvens av saker:


      Tester Tester returnerar ett sant eller falskt värde, vanligtvis på basen
* -files0-from fil: Läs startpunkterna från en fil istället för att få dem på kommandoraden. I kontrast till de kända begränsningarna av att skicka startpunkter via argument på kommandoraden, nämligen begränsningen av antalet filnamn och den inneboende tvetydigheten i filnamn som kolliderar med alternativnamn, tillåter detta alternativ att säkert överföra ett godtyckligt antal startpunkter till find.
              av någon egenskap hos en fil som vi överväger. Den -tomma
              test till exempel är sant endast när den aktuella filen är det
              tömma.


      Handlingar
Att använda detta alternativ och skicka startpunkter kommandoraden är ömsesidigt uteslutande och är därför inte tillåtet samtidigt.
              Åtgärder har biverkningar (som att skriva ut något
              standardutgången) och returnerar antingen sant eller falskt,
              vanligtvis baserat på om de är framgångsrika eller inte. De
              -print action till exempel skriver ut namnet på den aktuella
              fil på standardutgången.


      Globala alternativ
Filargumentet är obligatoriskt. Man kan använda -files0-from - för att läsa listan med startpunkter från standardingången, till exempel från en pipe. I detta fall är åtgärderna -ok och -okdir inte tillåtna, eftersom de uppenbarligen skulle störa inläsningen från standardingången för att en användarbekräftelse.
              Globala alternativ påverkar driften av tester och åtgärder
              som anges på någon del av kommandoraden. Globala alternativ
              returnerar alltid sant. Alternativet -depth gör till exempel
              att hitta går igenom filsystemet i en djup-första ordning.


      Positionsalternativ
Startpunkterna i filen måste separeras med ASCII NUL-tecken. Två på varandra följande NUL-tecken, det vill säga en startpunkt med ett filnamn med noll längd, är inte tillåtet och kommer att leda till ett felmeddelande följt av en icke-noll exitkod senare.
              Positionsalternativ påverkar endast tester eller åtgärder som
              Följ dem. Positionsalternativ returnerar alltid sant. De
              -regextype- alternativet till exempel är positionellt, specificerande
              dialekten för reguljära uttryck för reguljära uttryck
              inträffar senare på kommandoraden.


      Operatörer
Om den givna filen är tom, bearbetar find ingen startpunkt och avslutas därför omedelbart efter att ha analyserat programargumenten. Detta skiljer sig från standardanropet där find antar den aktuella katalogen som startpunkt om inget sökvägsargument anges.
              Operatörer sammanfogar de andra objekten inom
              uttryck. De inkluderar till exempel -o (som betyder logisk
              OR) och -a (betyder logiskt OCH). Där en operatör finns
              saknas, -a antas.


      Åtgärden -print utförs på alla filer som helheten
Bearbetningen av startpunkterna är annars som vanligt, till exempel kommer find att rekursivt gå igenom underkataloger om det inte hindras på annat sätt. För att endast bearbeta startpunkterna kan man dessutom ange -maxdepth 0.
      uttrycket är sant, såvida det inte innehåller en annan handling än
      -beskär eller -sluta . Åtgärder som förhindrar standard -print är
        -delete , -exec , -execdir , -ok , -okdir , -fls , -fprint , -fprintf ,
        -ls , -print och -printf .


      Åtgärden -delete fungerar också som ett alternativ (eftersom det innebär
Ytterligare anteckningar: Om en fil listas mer än en gång i indatafilen är det ospecificerat om den besöks mer än en gång. Om filen ändras under operationen av find är resultatet också ospecificerat. Slutligen är sökpositionen inom den namngivna filen vid den tidpunkt då find avslutas, vare sig med -quit eller på något annat sätt, också ospecificerad. Med "ospecificerad" menas här att det kan fungera eller inte fungera, eller göra något specifikt, och att beteendet kan ändras från plattform till plattform eller från version till version av findutils.
        -depth ).


  POSITIONELLA ALTERNATIV
* -help, --help: Skriv ut en sammanfattning av kommandoradsanvändningen av find och avsluta.
      Positionsalternativ returnerar alltid sant. De påverkar bara tester
      inträffar senare på kommandoraden.


      -dagens start
* -ignore_readdir_race: Normalt sett kommer find att ge ett felmeddelande när det misslyckas med att statsa en fil. Om du använder detta alternativ och en fil raderas mellan tiden då find läser namnet på filen från katalogen och tiden då det försöker statsa filen, kommer inget felmeddelande att ges. Detta gäller även för filer eller kataloger vars namn ges på kommandoraden. Detta alternativ träder i kraft vid tidpunkten då kommandoraden läses, vilket innebär att du inte kan söka i en del av filsystemet med detta alternativ på och en del av det med detta alternativ avstängt (om du behöver göra det måste du köra två find-kommandon istället, ett med alternativet och ett utan det).
              Mät tider (för -amin , -atime , -cmin , -ctime , -mmin ,
              och -mtime ) från dagens början snarare än från
              24 timmar sedan. Det här alternativet påverkar bara tester som visas
              senare på kommandoraden.


      -Följ
** Vidare kommer find med -ignore_readdir_race-alternativet att ignorera fel från -delete-åtgärden om filen har försvunnit sedan föräldrakatalogen lästes: det kommer inte att skriva ut ett felmeddelande och returneringskoden från -delete-åtgärden kommer att vara sant.
              Utfasad; använd alternativet -L istället. Referens
              symboliska länkar. Antyder -noleaf . Alternativet -följ _
              påverkar endast de tester som visas efter det på
              kommandorad. Såvida inte alternativet -H eller -L har varitspecificerat, ändrar
              positionen för alternativet -follow
              beteendet hos predikatet -newer ; alla filer listade som
              argumentet -newer kommer att avreferens om de är det
              symboliska länkar. Samma hänsyn gäller för
              -newerXY , -newer och -cnewer . Likaså -typen
              predikatet kommer alltid att matcha filens typ
              som en symbolisk länk pekar på snarare än länken
              sig. Att använda -follow orsakar -lname och -ilname
              predikar alltid att returnera falskt.


      -regextype typ
* -maxdepth nivåer: Gå ned högst nivåer (ett icke-negativt heltal) nivåer av kataloger under startpunkterna. Användning av -maxdepth 0 betyder att tester och åtgärder endast tillämpas startpunkterna själva.
              Ändrar syntaxen för reguljära uttryck som förstås av -regex-
              och -iregex -test som inträffar senare kommandoraden.
              För att se vilka reguljära uttryckstyper som är kända, använd
              -regextyp hjälp . Texinfo-dokumentationen (se SE ÄVEN )
              förklarar innebörden av och skillnaderna mellan
              olika typer av reguljära uttryck.


      -varna, -varna
* -mindepth nivåer: Använd inga tester eller åtgärder nivåer lägre än nivåer (ett icke-negativt heltal). Användning av -mindepth 1 betyder att alla filer utom startpunkterna behandlas.
              Slå på eller av varningsmeddelanden. Dessa varningar gäller
              endast till kommandoradens användning, inte till några villkor som
              find kan stöta när den söker i kataloger. De
              standardbeteende motsvarar -warn if standard input
              är en tty, och att -nowarn annars. Om ett varningsmeddelande
              relaterade till kommandoradsanvändning produceras, exit
              status för fyndet påverkas inte. Om miljövariabeln POSIXLY_CORRECT
              är inställd och -warn också används, är den det
              inte specificerat vilka, om några, varningar som kommer att vara aktiva.


  GLOBALA ALTERNATIV
* -mount: Gå inte ner i kataloger andra filsystem. Ett alternativt namn för -xdev, för kompatibilitet med vissa andra versioner av find.
      Globala alternativ returnerar alltid sant. Globala alternativ träder i kraft
      även för tester som inträffar tidigare kommandoraden. Till
      förhindra förvirring bör globala alternativ anges på
      kommandoraden efter listan med startpunkter, strax före
      första testet, positionsalternativet eller åtgärden. Om du anger en global
      alternativet på någon annan plats, kommer find att utfärda ett varningsmeddelande
      förklara att detta kan vara förvirrande.


      De globala alternativen visas efter listan med startpunkter och så
* -noignore_readdir_race: Stänger av effekten av -ignore_readdir_race.
      är inte samma typ av alternativ som -L , till exempel.


      -d En synonym för -djup, för kompatibilitet med FreeBSD,
* -noleaf: Optimera inte genom att anta att kataloger innehåller 2 färre underkataloger än deras hårda länkantal. Detta alternativ behövs när man söker i filsystem som inte följer Unix-kataloglänkkonventionen, som CD-ROM eller MS-DOS-filsystem eller AFS-volymmonteringspunkter. Varje katalog på ett normalt Unix-filsystem har minst 2 hårda länkar: dess namn och dess `.'-post. Dessutom har dess underkataloger (om några) varsin `..'-post länkad till den katalogen. När find undersöker en katalog, efter att ha statsat 2 färre underkataloger än katalogens länkantal, vet den att resten av posterna i katalogen är icke-kataloger (`leaf'-filer i katalogträdet). Om endast filernas namn behöver undersökas, finns det inget behov av att statsa dem; detta ger en betydande ökning av sökhastigheten.
              NetBSD, MacOS X och OpenBSD.


      -djup Bearbeta varje katalogs innehåll före katalogen
* -version, --version: Skriv ut find-versionens nummer och avsluta.
              sig. Åtgärden -delete innebär också -depth .


      -files0-from file
* -xdev: Gå inte ner i kataloger andra filsystem.
              Läs startpunkterna från filen istället för att hämta dem
              på kommandoraden. I motsats till de kända begränsningarna
              att skicka startpunkter via argument kommandot
              linje, nämligen begränsningen av mängden filnamn,
              och den inneboende tvetydigheten hos filnamn som krockar med
              alternativnamn, med detta alternativ kan du säkert skicka en
              godtyckligt antal startpunkter att hitta .


              Genom att använda det här alternativet och skicka startpunkter
== TESTER ==
              kommandoraden utesluter varandra och är det därför inte
* Vissa tester, till exempel -newerXY och -samefile, tillåter jämförelse mellan filen som för närvarande undersöks och någon referensfil som anges på kommandoraden. När dessa tester används bestäms tolkningen av referensfilen av alternativen -H, -L och -P och eventuella tidigare -follow, men referensfilen undersöks endast en gång, vid tidpunkten då kommandoraden analyseras. Om referensfilen inte kan undersökas (till exempel om stat(2)-systemanropet misslyckas för den), utfärdas ett felmeddelande och find avslutas med en icke-noll status.
              tillåtet samtidigt.


              Filargumentet är obligatoriskt . Man kan använda
* Ett numeriskt argument n kan specificeras för tester (som -amin, -mtime, -gid, -inum, -links, -size, -uid och -used) som:
              -filer0-från - för att läsa listan med startpunkter från
              standardinmatningsströmmen , och t.ex. från ett rör. I denna
              fall, åtgärderna -ok och -okdir är inte tillåtna, eftersom
              de skulle uppenbarligen störa läsning från standardinmatning
              för att få en användarbekräftelse .


              Startpunkterna i filen måste separeras med ASCII
+n för större än n,
              NUL-tecken. Två på varandra följande NUL-tecken, dvs
-n för mindre än n,
              startpunkt med ett noll-längd filnamn är inte tillåtet
n för exakt n.
              och kommer att leda till en feldiagnostik följt av en icke-
              Noll utgångskod senare.


              Om den givna filen är tom, bearbetas inte find
* Stödda tester:
              någon startpunkt och kommer därför att avslutas omedelbart
-amin n: Filen öppnades senast för mindre än, mer än eller exakt n minuter sedan.
              efter att ha analyserat programargumenten. Detta är till skillnad från
              standardanrop där hitta antar strömmen
              katalog som startpunkt om inget sökvägsargument skickas.


              Bearbetningen av utgångspunkterna är annars som
-anewer referens: Tidpunkten för den senaste åtkomsten av den aktuella filen är nyare än tidpunkten för den senaste datamodifieringen av referensfilen. Om referensfilen är en symbolisk länk och -H-alternativet eller -L-alternativet är i kraft, används alltid tidpunkten för den senaste datamodifieringen av filen som den pekar på.
              vanligt, t.ex.  hitta återkommer i underkataloger om inte
              annars förhindras. För att endast bearbeta utgångspunkterna,
              man kan dessutom passera -maxdepth 0 .


              Ytterligare anmärkningar: om en fil är listad mer än en gång i
-atime n: Filen öppnades senast för mindre än, mer än eller exakt n*24 timmar sedan. När find räknar ut hur många 24-timmarsperioder sedan filen senast öppnades, ignoreras alla bråkdelar, för att matcha -atime +1, måste en fil ha öppnats för minst två dagar sedan.
              indatafil, är det ospecificerat om den besöks mer
              än en gång. Om filen muteras under operationen av
              find är resultatet också ospecificerat. Slutligen, den
              söka position i den namngivna filen vid tidpunkten för att hitta
              utgångar, vare sig det är med -quit eller på annat sätt, är också
              ospecificerad. Med "ospecificerat" menas här att det ev
              eller kanske inte fungerar eller gör någon specifik sak, och att
              beteende kan ändras från plattform till plattform, eller från
              findutils släpper till släpp.


      -hjälp hjälp
-cmin n: Filens status ändrades senast för mindre än, mer än eller exakt n minuter sedan.
              Skriv ut en sammanfattning av kommandoradens användning av hitta och
              utgång.


      -ignore_readdir_race
-cnewer referens: Tidpunkten för den senaste statusändringen av den aktuella filen är nyare än tidpunkten för den senaste datamodifieringen av referensfilen. Om referensfilen är en symbolisk länk och -H-alternativet eller -L-alternativet är i kraft, används alltid tidpunkten för den senaste datamodifieringen av filen som den pekar på.
              Normalt kommer find att avge ett felmeddelande när det misslyckas
              ange en fil. Om du ger det här alternativet och en fil är
              raderas mellan tid hitta läser namnet på filen
              från katalogen och den tid den försöker ange filen,
              inget felmeddelande kommer att utfärdas. Detta gäller även för
              filer eller kataloger vars namn anges på kommandot
              linje. Det här alternativet träder i kraft vid tidpunkten för kommandot
              rad läses, vilket innebär att du inte kan söka på en del
              av filsystemet med detta alternativ och en del av det med
              det här alternativet av (om du behöver göra det måste du göra det
              utfärda två sökkommandon istället, ett med alternativet och
              en utan).


              Dessutom, hitta med alternativet -ignore_readdir_race
-ctime n: Filens status ändrades senast för mindre än, mer än eller exakt n*24 timmar sedan. Se kommentarerna för -atime för att förstå hur avrundning påverkar tolkningen av filens statusändringstider.
              kommer att ignorera fel i -delete- åtgärden i fallet med
              filen har försvunnit sedan den överordnade katalogen lästes:
              det kommer inte att mata ut en feldiagnostik och returnera
              koden för -delete- åtgärden kommer att vara sann.


      -maxdjupnivåer
-empty: Filen är tom och är antingen en vanlig fil eller en katalog.
              Gå ner på de flesta nivåer (ett icke-negativt heltal) nivåer av
              kataloger under utgångspunkterna. Använder -maxdepth 0
              innebär endast att tillämpa testerna och åtgärderna på start-
              poäng själva.


      -mindepth nivåer
-executable: Matchar filer som är körbara och kataloger som är sökbara (i meningen att lösa filnamn) av den nuvarande användaren. Detta tar hänsyn till åtkomstkontrollistor och andra behörighetsartefakter som -perm-testet ignorerar. Detta test använder systemanropet access(2) och kan därför luras av NFS-servrar som gör UID-mappning (eller root-squashing), eftersom många system implementerar access(2) i klientens kärna och därför inte kan använda den UID-mappningsinformation som finns på servern. Eftersom detta test endast baseras på resultatet av systemanropet access(2) finns det ingen garanti för att en fil för vilken detta test lyckas faktiskt kan köras.
              Använd inte några tester eller åtgärder på nivåer som är lägre än
              nivåer (ett icke-negativt heltal). Att använda -mindepth 1 betyder
              bearbeta alla filer utom startpunkterna.


      -mount Gå inte ner i kataloger på andra filsystem. En
-false: Alltid falskt.
              alternativt namn för -xdev , för kompatibilitet med vissa
              andra versioner av hitta .


      -noignore_readdir_race
-fstype typ: Filen är på ett filsystem av typen typ. De giltiga filsystemtyperna varierar mellan olika versioner av Unix; en ofullständig lista över filsystemtyper som accepteras på någon version av Unix eller annan är: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Du kan använda -printf med %F-direktivet för att se typerna av dina filsystem.
              Stänger av effekten av -ignore_readdir_race .


      -noleaf
-gid n: Filens numeriska grupp-ID är mindre än, mer än eller exakt n.
              Optimera inte genom att anta att kataloger innehåller 2
              färre underkataloger än antalet hårda länkar. Detta
              alternativet behövs när du söker efter filsystem som inte gör det
              följ Unix kataloglänkkonventionen, såsom CD-ROM
              eller MS-DOS-filsystem eller AFS-volymmonteringspunkter. Varje
              katalogen på ett normalt Unix-filsystem har minst 2 hårda
              länkar: dess namn och dess `.' inträde. Dessutom dess
              underkataloger (om några) har var och en en ".."-post länkad till
              den katalogen. När hitta undersöker en katalog, efter
              den har angett 2 färre underkataloger än katalogens
              länkräkning, den vet att resten av posterna i
              katalogen är icke-kataloger ('blad'-filer i
              katalogträd). Om bara filernas namn behöver vara det
              undersökt, finns det ingen anledning att ange dem; detta ger en
              betydande ökning av sökhastigheten.


      -version, --version
-group gname: Filen tillhör gruppen gname (numeriskt grupp-ID tillåts).
              Skriv ut sökversionsnumret och avsluta.


      -xdev Gå inte ner i kataloger på andra filsystem.
-ilname mönster: Som -lname, men matchningen är skiftlägesokänslig. Om -L-alternativet eller -follow-alternativet är i kraft, returnerar detta test falskt om inte den symboliska länken är trasig.


  TEST
-iname mönster: Som -name, men matchningen är skiftlägesokänslig. Till exempel matchar mönstren `fo*' och `F??' filnamnen `Foo', `FOO', `foo', `fOo', etc. Mönstret `*foo*' kommer också att matcha en fil som heter '.foobar'.
      Vissa tester, till exempel -newerXY och -samefile , tillåter jämförelse
-inum n: Filen har inodnummer mindre än, större än eller exakt n. Det är vanligtvis enklare att använda -samefile-testet istället.</pre>
      mellan den akt som för närvarande granskas och någon referensfil
*-ipath mönster: Som -path, men matchningen är skiftlägesokänslig.
      anges på kommandoraden. När dessa tester används,
*-iregex mönster: Som -regex, men matchningen är skiftlägesokänslig.
      tolkningen av referensfilen bestäms av alternativen
*-iwholename mönster: Se -ipath. Detta alternativ är mindre portabelt än -ipath.
      -H , -L och -P och alla tidigare -följer , men referensfilen är
*-links n: Filen har färre än, fler än eller exakt n hårda länkar.
      endast undersökt en gång, vid den tidpunkt då kommandoraden tolkas. Om
*-lname mönster: Filen är en symbolisk länk vars innehåll matchar skalmönstret mönster. Metatecken behandlar inte `/' eller `.' som speciella. Om -L-alternativet eller -follow-alternativet är i kraft, returnerar detta test falskt om inte den symboliska länken är trasig.
      referensfilen kan inte granskas (till exempel misslyckas stat(2)  
* -mmin n: Filens data ändrades senast för mindre än, mer än eller exakt n minuter sedan.
      -systemanropet för den), ett felmeddelande utfärdas och hitta
* -mtime n: Filens data ändrades senast för mindre än, mer än eller exakt n*24 timmar sedan. Se kommentarerna för -atime för att förstå hur avrundning påverkar tolkningen av filändringstider.
      avslutas med en status som inte är noll.
* -name mönster: Filens basnamn (sökvägen med de ledande katalogerna borttagna) matchar skalmönstret mönster. Eftersom filnamnets ledande kataloger tas bort, bör mönstret inte innehålla ett snedstreck, eftersom `-name a/b' aldrig kommer att matcha något (och du vill förmodligen använda -path istället). Ett undantag från detta är när du endast använder ett snedstreck som mönster (`-name /'), eftersom det är en giltig sträng för att matcha rotkatalogen "/" (eftersom basnamnet för "/" är "/"). En varning utfärdas om du försöker skicka ett mönster som innehåller en - men som inte enbart består av ett - snedstreck, om inte miljövariabeln POSIXLY_CORRECT är inställd eller alternativet -nowarn används.


      Ett numeriskt argument n kan specificeras för tester (som -amin ,
* För att ignorera en katalog och filerna under den, använd -prune istället för att kontrollera varje fil i trädet; se ett exempel i beskrivningen av den åtgärden. Hakar erkänns inte som speciella, trots att vissa skal, inklusive Bash, tilldelar hakar en speciell betydelse i skal-mönster. Filnamnsmatchningen utförs med hjälp av fnmatch(3) bibliotekets funktion. Glöm inte att omge mönstret med citattecken för att skydda det från expansion av skalet.
        -mtime , -gid , -inum , -links , -size , -uid och -used ) som


      +n      för större än n ,
* -newer referens: Tidpunkten för den senaste datamodifieringen av den aktuella filen är nyare än tidpunkten för den senaste datamodifieringen av referensfilen. Om referensfilen är en symbolisk länk och -H-alternativet eller -L-alternativet är i kraft, används alltid tidpunkten för den senaste datamodifieringen av filen som den pekar på.


      -n      för mindre än n ,
* -newerXY referens: Lyckas om tidsstämpeln X för filen som undersöks är nyare än tidsstämpeln Y för referensfilen. Bokstäverna X och Y kan vara någon av följande bokstäver:


      n      för exakt n .
* a: Åtkomsttiden för referensfilen
* B: Födelse


      Tester som stöds:
* c: Inodens statusändringstid för referensfilen
* m: Modifieringstiden för referensfilens data
* t: referens tolkas direkt som en tid


      -amin n
* Vissa kombinationer är ogiltiga; till exempel är det ogiltigt att X är t. Vissa kombinationer är inte implementerade på alla system; till exempel stöds inte B på alla system. Om en ogiltig eller icke stödd kombination av XY specificeras, resulterar det i ett fatalt fel. Tidspecifikationer tolkas som för argumentet till -d alternativet för GNU date. Om du försöker använda födelsetiden för en referensfil och födelsetiden inte kan bestämmas, resulterar detta i ett fatalt felmeddelande. Om du specificerar ett test som hänvisar till födelsetiden för filer som undersöks, kommer detta test att misslyckas för alla filer där födelsetiden är okänd.
              Filen användes senast mindre än, mer än eller exakt n
              minuter sedan.


      -nyare referens
* -nogroup: Ingen grupp motsvarar filens numeriska grupp-ID.
              Tidpunkten för den senaste åtkomsten av den aktuella filen är nyare
              än den för den senaste dataändringen av referensfilen
              . Om referens är en symbolisk länk och alternativet -H
              eller alternativet -L är i kraft, då tiden för den sista
              dataändring av filen den pekar på används alltid.


      -tid n
* -nouser: Ingen användare motsvarar filens numeriska användar-ID.
              Filen användes senast mindre än, mer än eller exakt
              n *24 timmar sedan. När hitta räknar ut hur många 24-timmars
              perioder sedan filen senast öppnades, valfri bråkdel
              delen ignoreras, så för att matcha -atime +1 måste en fil ha
              åtkomst för minst två dagar sedan.


      -cmin n
* -path mönster: Filnamnet matchar skalmönstret mönster. Metatecken behandlar inte `/` eller `.` som speciella; så, till exempel,
              Filens status ändrades senast mindre än, mer än eller
  `find . -path "./sr*sc"`
              exakt n minuter sedan.
  kommer att skriva ut en post för en katalog som heter ./src/misc (om en sådan finns). För att ignorera ett helt katalogträd, använd -prune istället för att kontrollera varje fil i trädet. Observera att mönstermatchningstestet gäller hela filnamnet, med start från en av startpunkterna som anges på kommandoraden. Det skulle bara vara meningsfullt att använda ett absolut sökvägsnamn här om den relevanta startpunkten också är en absolut sökväg. Detta innebär att detta kommando aldrig kommer att matcha något:
`find bar -path /foo/bar/myfile -print`
Find jämför -path-argumentet med sammanslagningen av ett katalognamn och basnamnet på filen som undersöks. Eftersom sammanslagningen aldrig slutar med ett snedstreck, kommer -path-argument som slutar med ett snedstreck inte att matcha något (utom kanske en startpunkt som specificeras på kommandoraden). Predikatet -path stöds också av HP-UX find och är en del av POSIX 2008-standarden.


      -Cnewer referens
* -perm läge: Filens behörighetsbitar är exakt läge (oktalt eller symboliskt). Eftersom en exakt matchning krävs, om du vill använda detta formulär för symboliska lägen, kan du behöva specificera en ganska komplex lägessträng. Till exempel kommer `-perm g=w` endast att matcha filer som har läge 0020 (det vill säga sådana där gruppskrivbehörighet är den enda behörigheten som är satt). Det är troligare att du vill använda `/' eller `-' formulären, till exempel `-perm -g=w`, vilket matchar alla filer med gruppskrivbehörighet. Se EXEMPEL-sektionen för några illustrativa exempel.
              Tiden för den senaste statusändringen för den aktuella filen är längre
              senaste än den för den senaste dataändringen av
              referensfil . Om referensen är en symbolisk länk och
              alternativet -H eller alternativet -L är i kraft, är tiden för
              den sista dataändringen av filen den pekar på är
              alltid använd.


      -ctime n
* -perm -läge: Alla behörighetsbitar i läge är inställda för filen. Symboliska lägen accepteras i denna form, och detta är vanligtvis det sätt på vilket du skulle vilja använda dem. Du måste specificera `u', `g' eller `o' om du använder ett symboliskt läge. Se EXEMPEL-sektionen för några illustrativa exempel.
              Filens status ändrades senast mindre än, mer än eller
              exakt n *24 timmar sedan. Se kommentarerna för -atime to
              förstå hur avrundning påverkar tolkningen av filen
              statusändringstider.


      -empty Filen är tom och är antingen en vanlig fil eller en katalog.
* -perm /läge: Någon av behörighetsbitarna i läge är inställda för filen. Symboliska lägen accepteras i denna form. Du måste specificera `u', `g' eller `o' om du använder ett symboliskt läge. Se EXEMPEL-sektionen för några illustrativa exempel. Om inga behörighetsbitar i läge är inställda, matchar detta test vilken fil som helst (tanken här är att vara konsekvent med beteendet hos -perm -000).


      -körbar
* -perm +läge: Detta stöds inte längre (och har varit föråldrat sedan 2005). Använd istället -perm /läge.
              Matchar filer som är körbara och kataloger som
              är sökbara (i filnamnsupplösning) av
              nuvarande användaren. Detta tar hänsyn till åtkomstkontroll
              listor och andra behörighetsartefakter som -perm testar
              ignorerar. Detta test använder sig av access(2) -systemet
              anrop, och kan därför luras av NFS-servrar som använder UID
              mappning (eller root-squashing), eftersom många system implementerar
              access(2) i klientens kärna och kan därför inte använda
              UID-mappningsinformationen som finns på servern. Därför att
              detta test baseras endast på resultatet av åtkomsten (2)
              systemanrop finns det ingen garanti för att en fil som
              det här testet lyckas kan faktiskt utföras.


      -falskt Alltid falskt.
* -readable: Matchar filer som är läsbara av den nuvarande användaren. Detta tar hänsyn till åtkomstkontrollistor och andra behörighetsartefakter som -perm-testet ignorerar. Detta test använder systemanropet access(2) och kan därför luras av NFS-servrar som gör UID-mappning (eller root-squashing), eftersom många system implementerar access(2) i klientens kärna och därför inte kan använda den UID-mappningsinformation som finns på servern.


      -fstype typ
* -regex mönster: Filnamnet matchar reguljära uttrycket mönster. Detta är en matchning hela sökvägen, inte en sökning. Till exempel, för att matcha en fil som heter ./fubar3, kan du använda det reguljära uttrycket `.*bar.` eller `.*b.*3`, men inte `f.*r3`. De reguljära uttrycken som find förstår är som standard Emacs Regular Expressions, men detta kan ändras med -regextype-alternativet.
              Filen är på ett filsystem av typen . Den giltiga
              filsystemtyper varierar mellan olika versioner av Unix; en
              ofullständig lista över filsystemtyper som accepteras på
              någon version av Unix eller en annan är: ufs, 4.2, 4.3, nfs,
              tmp, mfs, S51K, S52K. Du kan använda -printf med %F
              direktiv för att se typerna av dina filsystem.


      -gid n Filens numeriska grupp-ID är mindre än, mer än eller exakt
* -samefile namn: Filen hänvisar till samma inod som namnet. När -L är i kraft kan detta inkludera symboliska länkar.
              n .


      -group gname
* -size n[cwbkMG]: Filen använder mindre än, mer än eller exakt n enheter utrymme, avrundat uppåt. Följande suffix kan användas:
              Filen tillhör gruppen gname (numeriskt grupp-ID tillåtet).


      -ilname pattern
** `b` för 512-byte block (detta är standard om inget suffix används)
              Som -lname , men matchningen är skiftlägesokänslig. Om alternativet -L
** `c` för bytes
              eller -follow är aktivt, testar detta
** `w` för tvåbytesord
              returnerar false om inte den symboliska länken är bruten.
** `k` för kibibytes (KiB, enheter om 1024 bytes)
** `M` för mebibytes (MiB, enheter om 1024 * 1024 = 1048576 bytes)
** `G` för gibibytes (GiB, enheter om 1024 * 1024 * 1024 = 1073741824 bytes)


      -iname mönster
** Storleken är helt enkelt st_size-medlemmen i struct stat som fylls i av lstat (eller stat) systemanropet, avrundat uppåt som visas ovan. Med andra ord är det konsekvent med resultatet du får för ls -l. Tänk på att `%k` och `%b` format-specifiers för -printf hanterar glesa filer annorlunda. `b`-suffixet betecknar alltid 512-byte block och aldrig 1024-byte block, vilket är annorlunda än beteendet hos -ls.
              Som -name , men matchningen är skiftlägesokänslig. För
              till exempel mönstren 'fo*' och 'F??' matcha filnamnen
              `Foo', `FOO', `foo', `fOo', etc. Mönstret `*foo*` kommer att
              matchar även en fil som heter '.foobar'.


      -inum n
** Prefixen + och - betyder större än respektive mindre än, som vanligt; det vill säga en exakt storlek på n enheter matchar inte. Tänk på att storleken avrundas upp till nästa enhet. Därför är -size -1M inte ekvivalent med -size -1048576c. Den förstnämnda matchar endast tomma filer, den senare matchar filer från 0 till 1,048,575 bytes.
              Filen har ett inodnummer som är mindre än, större än eller
              exakt n . Det är normalt lättare att använda -samefilen
              testa istället.


      -ipath mönster
* -true: Alltid sant.
              Som -path . men matchen är skiftlägesokänslig.


      -iregex -mönster
* -type c: Filen är av typen c:
              Som -regex , men matchningen är skiftlägesokänslig.


      -helnamnsmönster _
** b: block (buffrad) specialfil
              Se -ipath. Detta alternativ är mindre bärbart än
** c: tecken (obuffrad) specialfil
              -ipath .
** d: katalog
** p: namngiven pipe (FIFO)
** f: vanlig fil
** l: symbolisk länk; detta är aldrig sant om -L-alternativet eller -follow-alternativet är i kraft, om inte den symboliska länken är trasig. Om du vill söka efter symboliska länkar när -L är i kraft, använd -xtype.
** s: socket
** D: dörr (Solaris)


      -länkar n
* För att söka efter mer än en typ samtidigt, kan du ange den kombinerade listan av typbokstäver separerade med ett komma `,` (GNU-utökning).
              Filen har mindre än, mer än eller exakt n hårda länkar.


      -lname mönster
* -uid n: Filens numeriska användar-ID är mindre än, större än eller exakt n.
              Fil är en symbolisk länk vars innehåll matchar skalmönster
              mönster . Metatecken behandlar inte `/' eller `.'
              speciellt. Om alternativet -L eller -följ är in
              effekt, returnerar detta test falskt om inte den symboliska länken
              är bruten.


      -mmin n
* -used n: Filen åtkomstes senast mindre än, mer än eller exakt n dagar efter att dess status senast ändrades.
              Filens data ändrades senast mindre än, mer än eller
              exakt n minuter sedan.


      -mtid n
* -user användarnamn: Filen ägs av användaren användarnamn (numeriskt användar-ID tillåtet).
              Filens data ändrades senast mindre än, mer än eller
              exakt n *24 timmar sedan. Se kommentarerna för -atime to
              förstå hur avrundning påverkar tolkningen av filen
              ändringstider.


      -namnmönster _
* -wholename mönster: Se -path. Detta alternativ är mindre portabelt än -path.
              Filnamnets bas (sökvägen med de ledande katalogerna
              bort) matchar skalmönster . Eftersom den
              ledande kataloger för filnamnen tas bort, den
              mönstret ska inte innehålla ett snedstreck, eftersom `-name a/b'
              kommer aldrig att matcha något (och du vill förmodligen använda
              -väg istället). Ett undantag från detta är när man endast använder en
              snedstreck som mönster (`-namn /'), eftersom det är ett giltigt
              sträng för att matcha rotkatalogen "/" (eftersom
              basnamnet på "/" är "/"). En varning utfärdas om du försöker
              att passera ett mönster som innehåller en - men som inte enbart består
              av ett - snedstreck, om inte miljövariabeln
              POSIXLY_CORRECT är inställt eller alternativet -nowarn används.


              För att ignorera en katalog och filerna under den, använd -prune
* -writable: Matchar filer som är skrivbara av den nuvarande användaren. Detta tar hänsyn till åtkomstkontrollistor och andra behörighetsartefakter som -perm-testet ignorerar. Detta test använder systemanropet access(2), och kan därför luras av NFS-servrar som gör UID-mappning (eller root-squashing), eftersom många system implementerar access(2) i klientens kärna och därför inte kan använda UID-mappningsinformationen på servern.
              istället för att kontrollera varje fil i trädet; se en
              exempel i beskrivningen av den åtgärden. Hängslen är det inte
              erkänd som speciell, trots att vissa
              skal inklusive Bash genomsyra hängslen med en speciell betydelse
              i skalmönster. Filnamnsmatchningen utförs
              med hjälp av biblioteksfunktionen fnmatch(3) . Gör det inte
              glöm att skriva mönstret inom citattecken för att
              skydda den från expansion av skalet.


      -nyare referens
* -xtype c: Samma som -type, om inte filen är en symbolisk länk. För symboliska länkar: om -H eller -P alternativet var specificerat, sant om filen är en länk till en fil av typen c; om -L-alternativet har använts, sant om c är `l`. Med andra ord, för symboliska länkar, kontrollerar -xtype typen av filen som -type inte kontrollerar. Om en symbolisk länk är trasig (för att det den pekar på inte existerar eller länken pekar på sig själv) kommer -xtype att fungera på samma sätt som -type.
              Tidpunkten för den senaste dataändringen av den aktuella filen är
              nyare än den för den senaste dataändringen av
              referensfil . Om referensen är en symbolisk länk och
              alternativet -H eller alternativet -L är i kraft, är tiden för
              den sista dataändringen av filen den pekar på är
              alltid använd.


      -newerXY referens
* -context mönster: (Endast SELinux) Säkerhetskontexten för filen matchar glob-mönstret.
              Lyckas om tidsstämpel X för filen som övervägs är
              nyare än tidsstämpel Y för filreferensen . Bokstäverna
              X och Y kan vara någon av följande bokstäver:


              a Åtkomsttiden för filreferensen B
== Åtgärder ==
              Födelsetiden för filreferensen c
* -delete: Tar bort filer eller kataloger; sant om borttagningen lyckades. Om borttagningen misslyckades, utfärdas ett felmeddelande och find:s utgångsstatus blir icke-noll (när det så småningom avslutas).
              Inodstatusändringstidpunkten för referensen
              m Ändringstiden för filreferensen t
              referensen    tolkas direkt som en tid


              Vissa kombinationer är ogiltiga; den är till exempel ogiltig
Varning: Glöm inte att find utvärderar kommandoraden som ett uttryck, så att sätta -delete först kommer att få find att försöka ta bort allt under de startpunkter du specificerade.
              för att X ska vara t . Vissa kombinationer är inte implementerade på
              alla system; till exempel B stöds inte på alla
              system. Om en ogiltig eller ostödd kombination av XY
              specificeras, resulterar ett allvarligt fel. Tidsspecifikationer
              tolkas som för argumentet till -d- alternativet
              GNU datum . Om du försöker använda födelsetiden för en referens
              fil, och födelsetiden inte kan fastställas, en dödlig
              felmeddelande resultat. Om du anger ett test som avser
              till födelsetiden för filer som granskas kommer detta test
              misslyckas för alla filer där födelsetiden är okänd.


      -nogroup
Användningen av -delete åtgärden på kommandoraden aktiverar automatiskt -depth-alternativet. Detta gör i sin tur -prune ineffektivt, och -delete åtgärden kan därför inte användas meningsfullt tillsammans med -prune.
              Ingen grupp motsvarar filens numeriska grupp-ID.


      -nöser
Ofta kanske användaren vill testa en find-kommandorad med -print innan man lägger till -delete för den faktiska borttagningskörningen. För att undvika överraskande resultat är det vanligtvis bäst att komma ihåg att använda -depth uttryckligen under de tidigare testkörningarna.
              Ingen användare motsvarar filens numeriska användar-ID.


      -path pattern
-delete åtgärden kommer att misslyckas med att ta bort en katalog om den inte är tom.
              Filnamnet matchar skalmönstermönster . De
              metatecken behandlar inte `/' eller `.' speciellt; så för
              exempel,
                  hitta . -sökväg "./sr*sc"
              kommer att skriva ut en post för en katalog som heter ./src/misc (if
              en finns). För att ignorera ett helt katalogträd, använd -prune
              istället för att kontrollera varje fil i trädet. Anteckna det
              mönstermatchningstestet gäller för hela filnamnet,
              med början från en av startpunkterna som anges på kommandot
              linje. Det skulle bara vara vettigt att använda en absolut väg
              namn här om den relevanta startpunkten också är en absolut
              väg. Detta betyder att detta kommando aldrig kommer att matcha
              något:
                  hitta bar -sökväg /foo/bar/myfile -print
              Find jämför argumentet -path med sammanlänkningen av
              ett katalognamn och basnamnet på filen det är
              granskning. Eftersom sammanlänkningen aldrig kommer att sluta med en
              snedstreck, -path -argument som slutar på ett snedstreck kommer att matcha
              ingenting (förutom kanske en startpunkt som anges på
              kommandorad). Predikatet -path stöds också av
              HP-UX hittar och är en del av POSIX 2008-standarden.


      -perm -läge
Tillsammans med -ignore_readdir_race alternativet kommer find att ignorera fel från -delete åtgärden om filen har försvunnit sedan föräldrakatalogen lästes: inget felmeddelande kommer att utfärdas, utgångskoden ändras inte till icke-noll, och returvärdet för -delete åtgärden kommer att vara sant.
              Filens tillståndsbitar är exakt läge (oktala eller
              symbolisk). Eftersom en exakt matchning krävs, om du vill
              för att använda det här formuläret för symboliska lägen, kanske du måste
              ange en ganska komplex lägessträng. Till exempel `-perm
              g=w' kommer bara att matcha filer som har läge 0020 (det vill säga
              de för vilka gruppens skrivbehörighet är den enda
              behörighetsuppsättning). Det är mer troligt att du kommer att vilja det
              använd formerna `/' eller `-', till exempel `-perm -g=w', som
              matchar alla filer med gruppskrivbehörighet. Se den
              EXEMPEL avsnitt för några illustrativa exempel.


      -perm - läge
* -exec kommando ;: Utför kommando; sant om 0 status returneras. Alla följande argument till find tolkas som argument till kommandot tills ett argument bestående av `;` stöter på. Strängen `{}` ersätts med det aktuella filnamnet som behandlas överallt där det förekommer i kommandots argument, inte bara i argument där det är ensam, som i vissa versioner av find. Båda dessa konstruktioner kan behöva undgås (med ett `\`) eller omges med citattecken för att skydda dem från att tolkas av skalet. Se EXEMPEL-sektionen för exempel på användningen av -exec alternativet. Det specificerade kommandot körs en gång för varje matchad fil. Kommandot körs i startkatalogen. Det finns oundvikliga säkerhetsproblem kring användningen av -exec åtgärden; du bör använda -execdir alternativet istället.
              Alla tillståndsbitars lägen är inställda för filen.
              Symboliska lägen accepteras i denna form, och så är det
              vanligtvis på det sätt som du skulle vilja använda dem. Du
              måste ange `u', `g' eller `o' om du använder ett symboliskt läge.
              Se avsnittet EXEMPEL för några illustrativa exempel.


      -perm / mode
* -exec kommando {} +: Denna variant av -exec åtgärden kör det specificerade kommandot på de valda filerna, men kommandoraden byggs genom att lägga till varje valt filnamn i slutet; det totala antalet anrop av kommandot blir mycket mindre än antalet matchade filer. Kommandoraden byggs på samma sätt som xargs bygger sina kommandorader. Endast ett instance av `{}` är tillåtet inom kommandot, och det måste visas i slutet, omedelbart före `+`; det behöver undgås (med ett `\`) eller omges med citattecken för att skydda det från tolkning av skalet. Kommandot körs i startkatalogen. Om något anrop med `+`-formen returnerar en icke-nollvärde som utgångsstatus, returnerar find en icke-noll utgångsstatus. Om find stöter på ett fel kan detta ibland orsaka en omedelbar avstängning, så vissa väntande kommandon kanske inte körs alls. Av denna anledning -exec mitt-kommando ... {} + -quit kanske inte resulterar i att mitt-kommando faktiskt körs. Denna variant av -exec returnerar alltid sant.
              Något av tillståndsbitarnas läge är inställt för filen.
              Symboliska lägen accepteras i denna form. Du måste
              ange 'u', 'g' eller 'o' om du använder ett symboliskt läge. Ser
              avsnittet EXEMPEL för några illustrativa exempel . Om
              inga behörighetsbitar i läge är inställda, detta test matchar någon
              fil (tanken här är att överensstämma med beteendet
              av -perm -000 ).


      -perm + läge
* -execdir kommando ;: Utför kommandot i den underkatalog som innehåller den matchade filen, vilket inte är samma katalog som den katalog där du startade find. Som med -exec bör `{}` omges med citattecken om find anropas från ett skal. Detta är en mycket säkrare metod för att anropa kommandon, eftersom det undviker tävlingssituationer under upplösningen av sökvägarna till de matchade filerna. Som med -exec åtgärden, kommer `+`-formen av -execdir att bygga en kommandorad för att behandla mer än en matchad fil, men varje givet anrop av kommandot kommer endast att lista filer som finns i samma underkatalog. Om du använder detta alternativ måste du se till att din PATH-miljövariabel inte hänvisar till `.`; annars kan en angripare köra vilka kommandon de vill genom att lämna en lämpligt namngiven fil i en katalog där du kommer att köra -execdir. Detsamma gäller om PATH innehåller poster som är tomma eller som inte är absoluta katalognamn. Om något anrop med `+`-formen returnerar en icke-nollvärde som utgångsstatus, returnerar find en icke-noll utgångsstatus. Om find stöter på ett fel kan detta ibland orsaka en omedelbar avstängning, så vissa väntande kommandon kanske inte körs alls. Resultatet av åtgärden beror på om + eller ;-varianten används; -execdir kommando {} + returnerar alltid sant, medan -execdir kommando {} ; returnerar sant endast om kommandot returnerar 0.
              Detta stöds inte längre (och har fasats ut sedan dess
              2005). Använd -perm / mode istället.


      -läsbar
* -fls fil: Sant; som -ls men skriv till fil som -fprint. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
              Matchar filer som är läsbara av den aktuella användaren.
              Detta tar hänsyn till åtkomstkontrolllistor och annat
              behörighetsartefakter som -perm -testet ignorerar. Detta
              test använder sig av access(2) systemanropet, och så kan det vara
              luras av NFS-servrar som gör UID-mappning (eller root-
              squashing), eftersom många system implementerar access(2) i
              klientens kärna och kan därför inte använda UID-mappningen
              information som finns på servern.


      -regex -mönster
* -fprint fil: Sant; skriv det fullständiga filnamnet till fil fil. Om fil inte finns när find körs, skapas den; om den finns, trunceras den. Filnamnen /dev/stdout och /dev/stderr hanteras speciellt; de hänvisar till standardutmatning respektive standardfelutmatning. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
              Filnamnet matchar reguljärt uttrycksmönster . Det här är en
              matcha på hela vägen, inte en sökning. Till exempel att
              matcha en fil som heter ./fubar3, kan du använda den vanliga
              uttryck `.*bar.' eller `.*b.*3', men inte `f.*r3'. De
              reguljära uttryck som förstås av find är som standard
              Emacs reguljära uttryck (förutom att `.' matchar
              newline), men detta kan ändras med -regextypen
              alternativ.


      -samefile name
* -fprint0 fil: Sant; som -print0 men skriv till fil som -fprint. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
              Filen refererar till samma inode som name . När -L är inne
              effekt kan detta inkludera symboliska länkar.


      -storlek n [cwbkMG]
* -fprintf fil format: Sant; som -printf men skriv till fil som -fprint. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
              Filen använder mindre än, mer än eller exakt n enheter av
              utrymme, avrundning uppåt. Följande suffix kan användas:


              `b' för 512-byte block (detta är standard om nej
* -ls: Sant; lista aktuell fil i ls -dils format på standardutmatning. Blockräkningen är av 1 KB block, om inte miljövariabeln POSIXLY_CORRECT är satt, i vilket fall 512-byte block används. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
                    suffix används)


              `c' för bytes
* -ok kommando ;: Liknar -exec men frågar först användaren. Om användaren accepterar, kör kommandot. Annars returnera bara falskt. Om kommandot körs, omdirigeras dess standardingång från /dev/null. Denna åtgärd kan inte specificeras tillsammans med -files0-from-alternativet.


              "w" för två-byte ord
Svaret på uppmaningen matchas mot ett par reguljära uttryck för att avgöra om det är ett jakande eller nekande svar. Detta reguljära uttryck hämtas från systemet om miljövariabeln POSIXLY_CORRECT är inställd, annars från finds meddelandeöversättningar. Om systemet inte har någon lämplig definition kommer finds egen definition att användas. I båda fallen påverkas tolkningen av det reguljära uttrycket av miljövariablerna LC_CTYPE (teckenklasser) och LC_COLLATE (teckenintervall och ekvivalensklasser).


              "k" för kibibyte (KiB, enheter på 1024 byte)
* -okdir kommando ;: Liknar -execdir men frågar först användaren på samma sätt som för -ok. Om användaren inte accepterar, returnera bara falskt. Om kommandot körs, omdirigeras dess standardingång från /dev/null. Denna åtgärd kan inte specificeras tillsammans med -files0-from-alternativet.


              "M" för mebibyte (MiB, enheter på 1024 * 1024 = 1048576
* -print: Sant; skriv ut hela filnamnet på standardutgången, följt av en nyrad. Om du pipar utskriften från find till ett annat program och det finns den minsta möjligheten att de filer du söker efter kan innehålla en nyrad, bör du allvarligt överväga att använda -print0-alternativet istället för -print. Se avsnittet OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
                    byte)


              `G' för gibibyte (GiB, enheter på 1024 * 1024 * 1024 =
* -print0: Sant; skriv ut hela filnamnet på standardutgången, följt av ett nolltecken (i stället för nyradstecknet som -print använder). Detta gör att filnamn som innehåller nyrader eller andra typer av mellanrum kan tolkas korrekt av program som bearbetar find:s utskrift. Detta alternativ motsvarar -0-alternativet för xargs.
                    1073741824 byte)


              Storleken är helt enkelt st_size-medlemmen i strukturstatistiken
* -printf format: Sant; skriv ut format på standardutgången, tolkar `\`-undanflykter och `%`-direktiv. Fältbredd och precision kan specificeras som med printf(3) C-funktionen. Observera att många av fälten skrivs ut som %s istället för %d, och detta kan innebära att flaggor inte fungerar som du förväntar dig. Detta innebär också att `-`-flaggan fungerar (den tvingar fält att vara vänsterjusterade). Till skillnad från -print, lägger -printf inte till en nyrad i slutet av strängen. Undanflykter och direktiv är:
              fylld av lstat (eller stat) systemanropet, avrundat uppåt
              som visas ovan. Med andra ord är det förenligt med
              resultat du får för ls -l . Tänk på att "%k" och
              `%b' formatspecifikationer för -printf hanterar glesa filer
              annorlunda. Suffixet `b' betecknar alltid 512-byte
              block och aldrig 1024-byte block, vilket skiljer sig från
              beteendet hos -ls .


              Prefixen + och - betyder större än och mindre än,
\a: Larmklocka.
              som vanligt; dvs en exakt storlek på n enheter matchar inte.
\b: Backsteg.
              Tänk på att storleken avrundas uppåt till nästa enhet.
\c: Stoppa utskriften från detta format omedelbart och spola utgången.
              Därför motsvarar -storlek -1M inte -storlek -1048576c .
\f: Formmatning.
              Den förra matchar bara tomma filer, den senare matchar
\n: Nyrad.
              filer från 0 till 1 048 575 byte.
\r: Vagnretur.
\t: Horisontell tabb.
\v: Vertikal tabb.
\0: ASCII NUL.
\\: Ett bokstavligt omvänt snedstreck (`\`).
\NNN: Tecknet vars ASCII-kod är NNN (oktalt).
Ett `\`-tecken följt av någon annan tecken behandlas som ett vanligt tecken, så båda skrivs ut.


      -sant Alltid sant.
%%: Ett bokstavligt procenttecken.
%a: Filens senaste åtkomsttid i formatet som returneras av C-funktionen ctime(3).
%Ak: Filens senaste åtkomsttid i formatet som specificeras av k, vilket antingen är `@` eller ett direktiv för C-funktionen strftime(3). Nedan visas en ofullständig lista över möjliga värden för k. Vänligen hänvisa till dokumentationen för strftime(3) för hela listan. Vissa av konverteringsspecifikationerna kan inte vara tillgängliga på alla system, beroende på skillnader i implementationen av strftime(3) bibliotekfunktionen.


      -typ c
* @: sekunder sedan 1 januari 1970, 00:00 GMT, med bråkdel.
              Filen är av typ c :
* Tidsfält:
H: timme (00..23)
I: timme (01..12)
k: timme (0..23)
l: timme (1..12)
M: minut (00..59)
p: lokal AM eller PM
r: tid, 12-timmars (hh:mm:ss [AP]M)
S: Sekund (00.00 .. 61.00). Det finns en bråkdel.
T: tid, 24-timmars (hh:mm:ss.xxxxxxxxxx)
+: Datum och tid, separerade av `+`, till exempel `2004-04-28+22:22:05.0`. Detta är en GNU-utökning. Tiden ges i den aktuella tidszonen (som kan påverkas av inställningen av TZ-miljövariabeln). Sekundfältet inkluderar en bråkdel.
X: lokal tidsrepresentation (H:M:S). Sekundfältet inkluderar en bråkdel.
Z: tidszon (t.ex., EDT), eller inget om ingen tidszon är fastställbar.


              b block (buffrad) special
* Datumfält:
a: lokal förkortad veckodagsnamn (Sön..Lör)
A: lokal full veckodagsnamn, variabel längd (Söndag..Lördag)
b: lokal förkortad månadsnamn (Jan..Dec)
B: lokal full månadsnamn, variabel längd (Januari..December)
c: lokal datum och tid (Lör Nov 04 12:02:33 EST 1989). Formatet är samma som för ctime(3) och så för att bevara kompatibilitet med det formatet finns ingen bråkdel i sekundfältet.
d: dag i månaden (01..31)
D: datum (mm/dd/yy)
F: datum (yyyy-mm-dd)
h: samma som b
j: dag i året (001..366)
m: månad (01..12)
U: veckonummer med söndag som första dag i veckan (00..53)
w: veckodag (0..6)
W: veckonummer med måndag som första dag i veckan (00..53)
x: lokal datumrepresentation (mm/dd/yy)
y: sista två siffrorna i året (00..99)
Y: år (1970...)


              c-tecken (obuffrad) special
%b: Den mängd diskutrymme som används för denna fil i 512-byte block. Eftersom diskutrymme allokeras i multiplar av filsystemets blockstorlek är detta vanligtvis större än %s/512, men det kan också vara mindre om filen är en sparad fil.


              d katalog
%Bk: Filens födelsetid, dvs dess skapandetid, i formatet specificerat av k, vilket är detsamma som för %A. Detta direktiv producerar en tom sträng om det underliggande operativsystemet eller filsystemet inte stöder födelsetider.


              p named pipe (FIFO)
%c: Filens senaste statusändringstid i formatet som returneras av C-funktionen ctime(3).


              f vanlig fil
%Ck: Filens senaste statusändringstid i formatet specificerat av k, vilket är detsamma som för %A.


              l symbolisk länk; detta är aldrig sant om alternativet -L
%d: Filens djup i katalogträdet; 0 betyder att filen är en startpunkt.
                    eller alternativet -follow är i kraft, om inte
                    symbolisk länk är bruten. Om du vill söka efter
                    symboliska länkar när -L är i kraft, använd -xtype .


              s uttag
%D: Enhetens nummer där filen finns (st_dev-fältet i struct stat), i decimal.


              D dörr (Solaris)
%f: Skriv ut basnamnet; filens namn med eventuella ledande kataloger borttagna (endast det sista elementet). För /, är resultatet `/`. Se EXEMPEL-sektionen för ett exempel.


              För att söka efter mer än en typ en gång kan du tillhandahålla
%F: Typen av filsystemet som filen finns ; detta värde kan användas för -fstype.
              den kombinerade listan med typbokstäver separerade med kommatecken `,'
              (GNU-förlängning).


      -uid n Filens numeriska användar-ID är mindre än, mer än eller exakt
%g: Filens gruppnamn, eller numeriskt grupp-ID om gruppen saknar namn.
              n .


      -used n
%G: Filens numeriska grupp-ID.
              Filen användes senast mindre än, mer än eller exakt n
              dagar efter att dess status senast ändrades.


      -user uname
%h: Katalognamn; de ledande katalogerna för filens namn (alla utom det sista elementet). Om filnamnet inte innehåller några snedstreck (eftersom det är i den aktuella katalogen) expanderar %h till `.`. För filer som själva är kataloger och innehåller ett snedstreck (inklusive /), expanderar %h till den tomma strängen. Se EXEMPEL-sektionen för ett exempel.
              Filen ägs av användaren uname (numeriskt användar-ID tillåtet).


      -helnamnsmönster
%H: Startpunkt under vilken filen hittades.
              Se -sökväg . Detta alternativ är mindre portabelt än -path .


      -skrivbar
%i: Filens inode-nummer (i decimal).
              Matchar filer som är skrivbara av den aktuella användaren.
              Detta tar hänsyn till åtkomstkontrolllistor och annat
              behörighetsartefakter som -perm -testet ignorerar. Detta
              test använder sig av access(2) systemanropet, och så kan det vara
              luras av NFS-servrar som gör UID-mappning (eller root-
              squashing), eftersom många system implementerar access(2) i
              klientens kärna och kan därför inte använda UID-mappningen
              information som finns på servern.


      -xtype c
%k: Mängden diskutrymme som används för denna fil i 1 KB block. Eftersom diskutrymme allokeras i multiplar av filsystemets blockstorlek är detta vanligtvis större än %s/1024, men det kan också vara mindre om filen är en sparad fil.
              Samma som -type om inte filen är en symbolisk länk. För
              symboliska länkar: om alternativet -H eller -P angavs, sant
              om filen är en länk till en fil av typ c ; om alternativet -L
              har getts, sant om c är 'l'. Med andra ord,
              för symboliska länkar kontrollerar -xtype typen av fil
              den -typen kontrollerar inte.


      -kontextmönster _
%l: Objekt för symbolisk länk (tom sträng om filen inte är en symbolisk länk).
              (endast SELinux) Säkerhetskontexten för filen matchar glob
              mönster .


  HANDLINGAR
%m: Filens behörighetsbitar (i oktal). Detta alternativ använder de `traditionella` siffrorna som de flesta Unix-implementationer använder, men om din specifika implementation använder en ovanlig ordning av oktala behörighetsbitar, kommer du att se en skillnad mellan det faktiska värdet på filens läge och utmatningen av %m. Normalt vill du ha en ledande nolla på detta nummer, och för att göra detta, bör du använda #-flaggan (som i, till exempel, `%#m`).
      -radera
              Ta bort filer eller kataloger; sant om borttagningen lyckades.
              Om borttagningen misslyckades skickas ett felmeddelande och
              find s utgångsstatus kommer att vara noll (när den så småningom
              utgångar).


              Varning : Glöm inte att hitta utvärderar kommandoraden
%M: Filens behörigheter (i symbolisk form, som för ls). Detta direktiv stöds i findutils 4.2.5 och senare.
              som ett uttryck, så att sätta -delete först kommer att göra find
              försök att ta bort allt under startpunkterna du
              specificerad.


              Användningen av åtgärden -delete på kommandoraden
%n: Antal hårda länkar till filen.
              aktiverar automatiskt alternativet -djup . Eftersom
              -depth i sin tur gör -prune ineffektiv, kan -delete- åtgärden inte
              med fördel kombineras med -prune .


              Ofta kanske användaren vill testa en hitta kommandorad
%p: Filens namn.
              med -print innan du lägger till -delete för själva borttagningen
              springa. För att undvika överraskande resultat är det oftast bäst att
              kom ihåg att använda -depth uttryckligen under de tidigare
              testkörningar.


              Åtgärden -delete kommer inte att ta bort en katalog om inte
%P: Filens namn med namnet på startpunkten under vilken den hittades borttagen.
              det är tomt.


              Tillsammans med alternativet -ignore_readdir_race , find will
%s: Filens storlek i byte.
              ignorera fel i -delete- åtgärden i fallet med filen
              har försvunnit sedan den överordnade katalogen lästes: den
              kommer inte att mata ut en feldiagnostik, inte ändra utgången
              kod till icke-noll, och returkoden för -delete- åtgärden
              kommer att vara sant.


      -exec kommando ;
%S: Filens gleshet. Detta beräknas som (BLOCKSIZE*st_blocks / st_size). Det exakta värdet du får för en vanlig fil av en viss längd är systemberoende. Men normalt kommer sparade filer att ha värden mindre än 1.0, och filer som använder indirekta block kan ha ett värde som är större än 1.0. I allmänhet är antalet block som används av en fil filsystemberoende. Värdet som används för BLOCKSIZE är systemberoende, men är vanligtvis 512 byte. Om filstorleken är noll är det utskrivna värdet odefinierat. På system som saknar stöd för st_blocks, antas en fils gleshet vara 1.0.
              Kör kommandot ; sant om 0 status returneras. Allt
              följande argument att hitta anses vara argument för
              kommandot tills ett argument som består av `;' är
              påträffade. Strängen `{}' ersätts av den nuvarande
              filnamnet bearbetas överallt där det förekommer i
              argument till kommandot, inte bara i argument där det
              är ensam, som i vissa versioner av hitta . Båda dessa
              konstruktioner kan behöva escapes (med en `\') eller
              citerade för att skydda dem från expansion av skalet. Seravsnittet EXEMPEL
              för exempel på användningen av -exec
              alternativ. Det angivna kommandot körs en gång för varje
              matchad fil. Kommandot exekveras i starten
              katalog. Det finns oundvikliga säkerhetsproblem
              omgivande användning av -exec -åtgärden; du bör använda
              alternativet -execdir istället.


      -exec kommandot {} +
%t: Filens senaste ändringstid i formatet som returneras av C-funktionen ctime(3).
              Denna variant av -exec -åtgärden kör den angivna
              kommandot på de valda filerna, men kommandoraden är
              byggd genom att lägga till varje valt filnamn i slutet; de
              det totala antalet anrop av kommandot kommer att vara mycket
              mindre än antalet matchade filer. Kommandoraden
              är byggd på ungefär samma sätt som xargs bygger sin
              kommandorader. Endast en instans av `{}' är tillåten
              inom kommandot, och det måste visas i slutet,
              omedelbart före `+'; det måste undkomma (med en
              `\') ​​eller citeras för att skydda den från tolkning av
              skal. Kommandot körs i startkatalogen.
              Om någon anrop med "+"-formen returnerar en icke-noll
              värde som utgångsstatus, returnerar sedan en utgång som inte är noll
              status. Om hitta stöter på ett fel kan detta ibland
              orsaka en omedelbar utgång, så vissa väntande kommandon kanske inte
              köras överhuvudtaget. Av denna anledning kanske -exec my-
              command  ... {} + -quit inte resulterar i att my-command
              faktiskt körs. Denna variant av -exec returnerar alltid
              Sann.


      -execdir kommando ;
%Tk: Filens senaste ändringstid i formatet specificerat av k, vilket är detsamma som för %A.


      -execdir kommandot {} +
%u: Filens användarnamn, eller numeriskt användar-ID om användaren saknar namn.
              Som -exec , men det angivna kommandot körs från
              underkatalog som innehåller den matchade filen, vilket inte är det
              normalt katalogen där du började hitta . Som med
              -exec, {} ska citeras om fyndet anropas
              från ett skal. Detta är en mycket säkrare metod för att anropa
              kommandon, eftersom det undviker tävlingsförhållanden under upplösning
              av sökvägarna till de matchade filerna. Precis som med -exec
              -åtgärden kommer "+"-formen av -execdir att bygga en kommandorad
              att bearbeta mer än en matchad fil, men en given fil
              anrop av kommando kommer bara att lista filer som finns i
              samma underkatalog. Om du använder det här alternativet måste du
              se till att din PATH- miljövariabel inte gör det
              referens `.'; annars kan en angripare köra vilka kommandon som helst
              de gillar genom att lämna en fil med lämpligt namn i en
              katalog där du kommer att köra -execdir . Det samma
              gäller att ha poster i PATH som är tomma eller vilka
              är inte absoluta katalognamn. Om någon åkallelse med
              "+"-formuläret returnerar ett värde som inte är noll som utgångsstatus
              find returnerar en utgångsstatus som inte är noll. Om hitta möten
              ett fel, kan detta ibland orsaka en omedelbar utgång, så
              vissa väntande kommandon kanske inte körs alls. Resultatet
              av åtgärden beror på om + eller ; variant är
              används; -execdir kommando  {} + returnerar alltid true,
              while -execdir kommando  {} ; returnerar bara sant om kommandot
              ger 0.


      -fls fil
%U: Filens numeriska användar-ID.
              Sant; gillar -ls men skriv till filen som -fprint . Utgången
              fil skapas alltid, även om predikatet aldrig är det
              matchade. Se avsnittet OVENLIGA FILNAMN för
              information om hur ovanliga tecken i filnamn är
              hanteras.


      -fprint fil
%y: Filens typ (som i ls -l), U=okänd typ (bör inte hända).
              Sant; skriv ut hela filnamnet i filfilen . Om filen
              inte finns när find körs skapas den; om det gör det
              existerar, är det stympat. Filnamnen /dev/stdout och
              /dev/stderr hanteras speciellt; de hänvisar till
              standardutgång respektive standardfelutgång.
              Utdatafilen skapas alltid, även om predikatet
              är aldrig matchad. Se avsnittet OVENLIGA FILNAMN för
              information om hur ovanliga tecken i filnamn är
              hanteras.


      -fprint0 fil
%Y: Filens typ (som %y), plus följ symboliska länkar: `L`=loop, `N`=obefintlig, `?` för alla andra fel vid bestämning av målets typ för en symbolisk länk.
              Sant; som -print0 men skriv till filen som -fprint . De
              utdatafil skapas alltid, även om predikatet är det
              aldrig matchade. Se avsnittet OVENLIGA FILNAMN för
              information om hur ovanliga tecken i filnamn är
              hanteras.


      -fprintf filformat
%Z: (endast SELinux) filens säkerhetskontext.
              True; gillar -printf men skriv till filen som -fprint . De
              utdatafil skapas alltid, även om predikatet är det
              aldrig matchade. Se avsnittet OVENLIGA FILNAMN för
              information om hur ovanliga tecken i filnamn är
              hanteras.


      -ls Sant; lista aktuell fil i ls -dils format på standard
%{ %[ %(: Reserverad för framtida bruk.
              produktion. Blockantalet är 1 KB block, såvida inte
              miljövariabeln POSIXLY_CORRECT är inställd, i vilket fall
              512-byte block används. Se OVENLIGA FILNAMN
              avsnitt för information om hur ovanliga tecken in
              filnamn hanteras.


      -ok kommando ;
Ett `%`-tecken följt av något annat tecken kasseras, men det andra tecknet skrivs ut (lita inte på detta, eftersom ytterligare formattecken kan införas). Ett `%` i slutet av formatargumentet orsakar odefinierat beteende eftersom det inte finns något efterföljande tecken. I vissa lokaler kan det gömma dina nycklar, medan det i andra kan ta bort den sista sidan från romanen du läser.
              Gilla -exec men fråga användaren först. Om användaren samtycker,
              kör kommandot. Annars är det bara att returnera falskt. Om
              kommandot körs, dess standardinmatning omdirigeras från
              /dev/null . Denna åtgärd får inte anges tillsammans medalternativet
              -files0 -from .


              Svaret på prompten matchas mot ett par
%m och %d direktiven stöder #, 0 och + flaggorna, men de andra direktiven gör det inte, även om de skriver ut siffror. Numeriska direktiv som inte stöder dessa flaggor inkluderar G, U, b, D, k och n. `-`-formatflaggan stöds och ändrar justeringen av ett fält från högerjusterat (vilket är standard) till vänsterjusterat.
              reguljära uttryck för att avgöra om det är jakande
              eller negativ respons. Detta reguljära uttryck erhålls
              från systemet om miljön POSIXLY_CORRECT
              variabeln är inställd, eller på annat sätt från find s meddelande
              översättningar. Om systemet inte har någon lämplig definition,
              finds egen definition kommer att användas. I båda fallen
              tolkning av det reguljära uttrycket i sig kommer att vara
              påverkas av miljövariablerna LC_CTYPE (tecken
              klasser) och LC_COLLATE (teckenintervall och ekvivalens
              klasser).


      -okdir kommando ;
Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
              Gilla -execdir men fråga användaren först på samma sätt som
              för -ok . Om användaren inte accepterar, returnera bara false.
              Om kommandot körs omdirigeras dess standardinmatning
              från /dev/null . Denna åtgärd kanske inte anges tillsammans
              med alternativet -files0-from .


      -print Sant; skriv ut hela filnamnet på standardutdata,
* -prune: Sant; om filen är en katalog, gå inte ner i den. Om -depth ges, har -prune ingen effekt. Eftersom -delete implicerar -depth, kan du inte användbart använda -prune och -delete tillsammans. Till exempel, för att hoppa över katalogen src/emacs och alla filer och kataloger under den, och skriva ut namnen på de andra hittade filerna, gör något liknande detta:
              följt av en nyrad. Om du rör utgången av
  <pre>find . -path ./src/emacs -prune -o -print</pre>
              hitta in i ett annat program och där finns det svagaste
              möjligheten att filerna som du söker efter
              kan innehålla en ny rad, så borde du seriöst
              överväg att använda alternativet -print0 istället för -print . Ser
              avsnittet OVENLIGA FILNAMN för information om hur
              ovanliga tecken i filnamn hanteras.


      -tryck 0
* -quit: Avsluta omedelbart (med returvärde noll om inga fel har inträffat). Detta är annorlunda än -prune eftersom -prune endast gäller innehållet i beskurna kataloger, medan -quit helt enkelt gör att find stoppar omedelbart. Inga barnprocesser kommer att lämnas körande. Alla kommandorader som har byggts av -exec ... + eller -execdir ... + körs innan programmet avslutas. Efter att -quit har körts, behandlas inga fler filer som specificerats på kommandoraden. Till exempel,
              Sann; skriv ut hela filnamnet på standardutdata,
  <pre>find /tmp/foo /tmp/bar -print -quit</pre> skriver endast ut `/tmp/foo`.
              följt av ett nolltecken (istället för nyraden
  En vanlig användning av -quit är att stoppa sökningen i filsystemet när vi har hittat det vi vill ha. Till exempel, om vi vill hitta bara en enda fil kan vi göra detta:
              tecken som -print använder). Detta tillåter filnamn som
  <pre>find / -name needle -print -quit</pre>
              innehålla nylinjer eller andra typer av blanksteg att vara
              korrekt tolkad av program som bearbetar sökresultatet
              . Detta alternativ motsvarar alternativet -0 för
              xargs .


      -printf format
== OPERATÖRER ==
              Sant; utskriftsformat på standardutgången, tolkning
Listade i ordning efter minskande prioritet:
              `\' escapes och `%' direktiv. Fältbredder och
              precisioner kan specificeras som med printf(3) C
              fungera. Observera att många av fälten är utskrivna
              som %s snarare än %d, och det kan betyda att flaggor inte gör det
              fungera som du kan förvänta dig. Detta betyder också att "-"
              flaggan fungerar (den tvingar fält att vara vänsterjusterade).
              Till skillnad från -print lägger -printf inte till en nyrad i slutet
              av strängen. Utrymningarna och direktiven är:


              \a Alarmklocka.
* ( uttryck ): Tvingar prioritet. Eftersom parenteser är speciella för skalet, måste du normalt citera dem. Många av exemplen på denna manuelsida använder omvänt snedstreck för detta ändamål: `\(...\)` istället för `(...)`.


              \b Backsteg.
* ! uttryck: Sant om uttryck är falskt. Detta tecken behöver också vanligtvis skyddas från tolkning av skalet.


              \c Sluta omedelbart att skriva ut från detta format och
* -not uttryck: Samma som ! uttryck, men inte POSIX-kompatibelt.
                    spola utgången.


              \f Form feed.
* uttryck1 uttryck2: Två uttryck i rad anses vara sammanlänkade med ett underförstått -a; uttryck2 utvärderas inte om uttryck1 är falskt.


              \n Ny linje.
* uttryck1 -a uttryck2: Samma som uttryck1 uttryck2.


              Vagnretur.
* uttryck1 -and uttryck2: Samma som uttryck1 uttryck2, men inte POSIX-kompatibelt.


              \t Horisontell flik.
* uttryck1 -o uttryck2: Eller; uttryck2 utvärderas inte om uttryck1 är sant.


              \v Vertikal flik.
* uttryck1 -or uttryck2: Samma som uttryck1 -o uttryck2, men inte POSIX-kompatibelt.


              \0 ASCII NUL.
* uttryck1 , uttryck2: Lista; både uttryck1 och uttryck2 utvärderas alltid. Värdet av uttryck1 ignoreras; värdet av listan är värdet av uttryck2. Kommaoperatorn kan vara användbar för att söka efter flera olika typer av saker, men traversera filsystemets hierarki endast en gång. Åtgärden -fprintf kan användas för att lista de olika matchade objekten i flera olika utdatafiler.


              \\ Ett bokstavligt snedstreck (`\').
Observera att -a när den anges implicit (till exempel genom att två tester visas utan en uttrycklig operator mellan dem) eller uttryckligen har högre prioritet än -o. Detta innebär att `find . -name afile -o -name bfile -print` aldrig kommer att skriva ut afile.


              \NNN Det tecken vars ASCII-kod är NNN (oktal).
== OVANLIGA FILNAMN ==
Många av find-kommandots åtgärder resulterar i utskrift av data som kontrolleras av andra användare. Detta inkluderar filnamn, storlekar, ändringstider och så vidare. Filnamn är ett potentiellt problem eftersom de kan innehålla vilket tecken som helst förutom `\0` och `/`. Ovanliga tecken i filnamn kan göra oväntade och ofta oönskade saker med din terminal (till exempel ändra inställningarna för dina funktionsknappar på vissa terminaler). Ovanliga tecken hanteras olika av olika åtgärder, som beskrivs nedan.


              Ett `\'-tecken följt av ett annat tecken behandlas
* -print0, -fprint0: Skriver alltid ut det exakta filnamnet, oförändrat, även om utmatningen går till en terminal.
              som ett vanligt tecken, så de båda skrivs ut.


              %% Ett bokstavligt procenttecken.
* -ls, -fls: Ovanliga tecken är alltid undantagna. Blanksteg, omvänt snedstreck och dubbla citattecken skrivs ut med C-stil flykt (till exempel `\f`, `\"`). Andra ovanliga tecken skrivs ut med en oktal flykt. Andra utskrivbara tecken (för -ls och -fls är detta tecknen mellan oktal 041 och 0176) skrivs ut som de är.


              %a Filens senaste åtkomsttid i formatet som returneras avfunktionen
* -printf, -fprintf: Om utmatningen inte går till en terminal, skrivs den ut som den är. Annars beror resultatet på vilket direktiv som används. Direktiven %D, %F, %g, %G, %H, %Y och %y expanderar till värden som inte kontrolleras av filernas ägare och skrivs därför ut som de är. Direktiven %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u och %U har värden som kontrolleras av filernas ägare men som inte kan användas för att skicka godtyckliga data till terminalen och skrivs därför ut som de är. Direktiven %f, %h, %l, %p och %P är citerade. Denna citering utförs på samma sätt som för GNU ls. Detta är inte samma citeringsmekanism som används för -ls och -fls. Om du kan bestämma vilket format som ska användas för utdata från find, är det normalt bättre att använda `\0` som terminator än att använda nyrad, eftersom filnamn kan innehålla blanksteg och nyradstecken. Inställningen av miljövariabeln LC_CTYPE används för att avgöra vilka tecken som behöver citeras.
                    C ctime(3) .


              %A k    Filens senaste åtkomsttid i formatet som anges av
* -print, -fprint: Citering hanteras på samma sätt som för -printf och -fprintf. Om du använder find i ett skript eller i en situation där de matchade filerna kan ha godtyckliga namn, bör du överväga att använda -print0 istället för -print.
                      k , vilket är antingen `@' eller ett direktiv för funktionen C
                      strftime(3) . Följande visar en
                    ofullständig lista över möjliga värden för k . Snälla du
                    se dokumentationen för strftime(3) för
                    full lista. Några av konverteringsspecifikationerna
                    tecken kanske inte är tillgängliga på alla system,
                    på grund av skillnader i genomförandet av
                    strftime(3) biblioteksfunktion.


                    @ sekunder sedan 1 januari 1970, 00:00 GMT, med
* -ok och -okdir: Åtgärderna skriver ut det aktuella filnamnet som det är. Detta kan ändras i en framtida utgåva.
                            bråkdel.


                    Tidsfält:
== STANDARDKONFORMITET ==
För närmaste överensstämmelse med POSIX-standarden bör du ställa in miljövariabeln POSIXLY_CORRECT. Följande alternativ specificeras i POSIX-standarden (IEEE Std 1003.1-2008, 2016 Edition):


                    H timme (00..23)
* -H: Detta alternativ stöds.


                    I timme (01..12)
* -L: Detta alternativ stöds.


                    k timme (0..23)
* -name: Detta alternativ stöds, men POSIX-konformiteten beror på POSIX-konformiteten hos systemets fnmatch(3) bibliotekfunktion. Från och med findutils-4.2.2 matchar skalmönster (`*`, `?` eller `[]` till exempel) ett ledande `.` eftersom IEEE PASC-tolkning 126 kräver detta. Detta är en förändring från tidigare versioner av findutils.


                    l timme (1..12)
* -type: Stöds. POSIX specificerar `b`, `c`, `d`, `l`, `p`, `f` och `s`. GNU find stöder också `D`, vilket representerar en Door, där operativsystemet tillhandahåller dessa. Dessutom tillåter GNU find att flera typer specificeras samtidigt i en kommaseparerad lista.


                    M minut (00..59)
* -ok: Stöds. Tolkningen av svaret sker enligt de `ja` och `nej` mönster som valts genom att ställa in miljövariabeln LC_MESSAGES. När miljövariabeln POSIXLY_CORRECT är inställd tas dessa mönster från systemets definition av ett positivt (ja) eller negativt (nej) svar. Se systemets dokumentation för nl_langinfo(3), särskilt YESEXPR och NOEXPR. När POSIXLY_CORRECT inte är inställt, tas mönstren istället från finds egna meddelandekatalog.


                    p-lokalens AM eller PM
* -newer: Stöds. Om den angivna filen är en symbolisk länk, avrefereras den alltid. Detta är en förändring från tidigare beteende, där den relevanta tiden togs från den symboliska länken; se HISTORIA-sektionen nedan.


                    r tid, 12 timmar (hh:mm:ss [AP]M)
* -perm: Stöds. Om miljövariabeln POSIXLY_CORRECT inte är inställd, stöds vissa lägesargument (till exempel +a+x) som inte är giltiga i POSIX för bakåtkompatibilitet.


                    S Andra (00.00 ... 61.00). Det finns en
* Andra primära tester: De primära testerna -atime, -ctime, -depth, -exec, -group, -links, -mtime, -nogroup, -nouser, -ok, -path, -print, -prune, -size, -user och -xdev stöds alla.
                            bråkdel.


                    T tid, 24 timmar (hh:mm:ss.xxxxxxxxxx)
POSIX-standarden specificerar parenteser `(`, `)`, negation `!` och de logiska OCH/ELLER-operatörerna -a och -o.


                    + Datum och tid, avgränsade med "+", till exempel
Alla andra alternativ, predikat, uttryck och så vidare är utökningar utöver POSIX-standarden. Många av dessa utökningar är dock inte unika för GNU find.
                            "2004-04-28+22:22:05.0". Detta är en GNU
                            förlängning. Tiden anges i strömmen
                            tidszon (som kan påverkas av inställningen
                            miljövariabeln TZ ). Sekunderna
                            fältet innehåller en bråkdel.


                    X-lokalens tidsrepresentation (H:M:S). De
POSIX-standarden kräver att find upptäcker loopar:
                            sekunders fält innehåller en bråkdel.


                    Z tidszon (t.ex. EDT), eller ingenting om ingen tid
* "Find-verktyget ska upptäcka oändliga loopar; det vill säga, när man går in i en tidigare besökt katalog som är en förfader till den sista filen som påträffades. När den upptäcker en oändlig loop, ska find skriva ett diagnostiskt meddelande till standardfel och antingen återställa sin position i hierarkin eller avsluta."
                            zonen är bestämbar


                    Datumfält:
GNU find uppfyller dessa krav. Länkräkningen för kataloger som innehåller poster som är hårda länkar till en förfader är ofta lägre än de annars borde vara. Detta kan innebära att GNU find ibland optimerar bort besöket av en underkatalog som faktiskt är en länk till en förfader. Eftersom find inte faktiskt går in i en sådan underkatalog, tillåts det att undvika att avge ett diagnostiskt meddelande. Även om detta beteende kan vara något förvirrande, är det osannolikt att någon faktiskt är beroende av detta beteende. Om lövoptimeringen har stängts av med -noleaf, kommer katalogposten alltid att undersökas och ett diagnostiskt meddelande kommer att utfärdas där det är lämpligt. Symboliska länkar kan inte användas för att skapa filsystemcykler som sådana, men om -L-alternativet eller -follow-alternativet är i bruk, utfärdas ett diagnostiskt meddelande när find stöter på en loop av symboliska länkar. Precis som med loopar som innehåller hårda länkar, innebär lövoptimeringen ofta att find vet att det inte behöver kalla stat() eller chdir() på den symboliska länken, så denna diagnos är ofta inte nödvändig.


                    en lokals förkortade veckodagsnamn (sön..lör)
* -d-alternativet stöds för kompatibilitet med olika BSD-system, men du bör använda det POSIX-kompatibla alternativet -depth istället.


                    En lokals fullständiga veckodagsnamn, variabel längd
* Miljövariabeln POSIXLY_CORRECT påverkar inte beteendet hos -regex eller -iregex tester eftersom dessa tester inte är specificerade i POSIX-standarden.
                            (Söndag lördag)


                    b-lokalens förkortade månadsnamn (jan..dec)
== MILJÖVARIABLER ==
* LANG: Ger ett standardvärde för de internationaliseringsvariabler som är oinställda eller null.


                    B-lokalens fullständiga månadsnamn, variabel längd
* LC_ALL: Om den är inställd på ett icke-tomt strängvärde, åsidosätter värdena för alla andra internationaliseringsvariabler.
                            (januari..december)


                    c lokalens datum och tid (lör 4 november 12:02:33
* LC_COLLATE: POSIX-standarden specificerar att denna variabel påverkar mönstermatchningen som ska användas för -name-alternativet. GNU find använder fnmatch(3) bibliotekfunktionen, stöd för LC_COLLATE beror på systembiblioteket. Denna variabel påverkar också tolkningen av svaret på -ok; medan LC_MESSAGES-variabeln väljer det faktiska mönstret som används för att tolka svaret på -ok, kommer tolkningen av eventuella parentesuttryck i mönstret att påverkas av LC_COLLATE.
                            EST 1989). Formatet är detsamma som för
                            ctime(3) och så för att bevara kompatibiliteten
                            med det formatet finns det ingen bråk
                            del i sekundfältet.


                    d dag i månaden (01..31)
* LC_CTYPE: Denna variabel påverkar behandlingen av teckenklasser som används i reguljära uttryck och även med -name-testet, om systemets fnmatch(3) bibliotekfunktion stöder detta. Denna variabel påverkar också tolkningen av eventuella teckenklasser i de reguljära uttryck som används för att tolka svaret på prompten som ges av -ok. Miljövariabeln LC_CTYPE påverkar också vilka tecken som anses vara outskrivbara när filnamn skrivs ut; se avsnittet OVANLIGA FILNAMN.


                    D-datum (mm/dd/åå)
* LC_MESSAGES: Bestämmer vilken lokal som ska användas för internationaliserade meddelanden. Om miljövariabeln POSIXLY_CORRECT är inställd, bestämmer denna också tolkningen av svaret på prompten som ges av -ok-åtgärden.


                    F-datum (åååå-mm-dd)
* NLSPATH: Bestämmer platsen för internationaliseringsmeddelandekatalogerna.


                    h samma som b
* PATH: Påverkar de kataloger som genomsöks för att hitta de körbara filer som anropas av -exec, -execdir, -ok och -okdir.


                    j dag på året (001..366)
* POSIXLY_CORRECT: Bestämmer blockstorleken som används av -ls och -fls. Om POSIXLY_CORRECT är inställd, är blocken enheter om 512 byte. Annars är de enheter om 1024 byte.


                    m månad (01..12)
  * Att ställa in denna variabel stänger också av varningsmeddelanden (det vill säga implicerar -nowarn) som standard, eftersom POSIX kräver att förutom utdata för -ok, alla meddelanden som skrivs ut på stderr är diagnostik och måste resultera i ett icke-noll exitstatus.


                    U veckonummer år med söndag som första dag
  * När POSIXLY_CORRECT inte är inställt, behandlas -perm +zzz precis som -perm /zzz om +zzz inte är ett giltigt symboliskt läge. När POSIXLY_CORRECT är inställt, behandlas sådana konstruktioner som ett fel.
                            veckan (00..53)


                    w veckodag (0..6)
  * När POSIXLY_CORRECT är inställt, tolkas svaret på prompten som ges av -ok-åtgärden enligt systemets meddelandekatalog, i motsats till enligt finds egna meddelandeöversättningar.


                    W veckonummer år med måndag som första dag
* TZ: Påverkar tidszonen som används för några av de tidsrelaterade formatdirektiven för -printf och -fprintf.
                            veckan (00..53)


                    x-lokalens datumrepresentation (mm/dd/åå)
== EXEMPEL ==
=== Enkel `find|xargs` metod ===
* Hitta filer med namnet core i eller under katalogen /tmp och ta bort dem.


                    y sista två siffror i år (00..99)
<code>$ find /tmp -name core -type f -print | xargs /bin/rm -f</code>


                    Y år (1970...)
Observera att detta kommer att fungera felaktigt om det finns några filnamn som innehåller nyrader, enkla eller dubbla citattecken, eller blanksteg.


              %b Mängden diskutrymme som används för den här filen
=== Säker `find -print0 | xargs -0` metod ===
                    512-byte block. Eftersom diskutrymme är allokerat i
* Hitta filer med namnet core i eller under katalogen /tmp och ta bort dem, behandla filnamn på ett sådant sätt att fil- eller katalognamn som innehåller enkla eller dubbla citattecken, blanksteg eller nyrader hanteras korrekt.
                    multipler av filsystemets blockstorlek detta är
                    vanligtvis större än %s/512, men det kan också vara det
                    mindre om filen är en gles fil.


              %B k    Filens födelsetid, dvs. dess skapelsetid, i
<code>$ find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f</code>
                    format som anges av k , vilket är samma som för %A.
                    Detta direktiv producerar en tom sträng om
                    underliggande operativsystem eller filsystem gör det inte
                    stödja födelsetider.


              %c Filens senaste statusändringstid i formatetreturneras av funktionen
Testet -name kommer före testet -type för att undvika att behöva kalla stat(2) på varje fil.
                    C ctime(3) .


              %C k    Filens senaste statusändringstid i formatet
Observera att det fortfarande finns en risk mellan tiden find traverserar hierarkin och skriver ut de matchande filnamnen och tiden processen som utförs av xargs arbetar med den filen.
                    specificeras av k , vilket är samma som för %A.


              %d Filens djup i katalogträdet; 0 betyder
=== Bearbeta godtyckliga startpunkter ===
                    filen är en utgångspunkt.
* Givet att ett annat program proggy förfiltrerar och skapar en stor NUL-separerad lista över filer, bearbeta dem som startpunkter och hitta alla vanliga, tomma filer bland dem:


              %D Det enhetsnummer som filen finns på (den
<code>$ proggy | find -files0-from - -maxdepth 0 -type f -empty</code>
                    st_dev-fältet för struct stat), i decimal.


              %f Skriv ut basnamnet; filens namn med någon
Användningen av `-files0-from -` betyder att läsa namnen på startpunkterna från standardinput, dvs från röret; och -maxdepth 0 säkerställer att endast uttryckligen de posterna undersöks utan att gå ner i kataloger (om en av startpunkterna är en).
                    ledande kataloger borttagna (endast de sista
                    element). För / är resultatet `/'. Se
                      avsnittet EXEMPEL för ett exempel.


              %F Typ av filsystem filen är ; detta värde
=== Utföra ett kommando för varje fil ===
                    kan användas för -fstype.
* Kör file varje fil i eller under den aktuella katalogen.


              %g Filens gruppnamn, eller numeriskt grupp-ID om gruppen
<code>$ find . -type f -exec file '{}' \;</code>
                    har inget namn.


              %G Filens numeriska grupp-ID.
Observera att klammerparenteserna är omgivna av enkla citattecken för att skydda dem från tolkning som skalsskriptinterpunktion. Semikolonet skyddas på samma sätt genom att använda ett omvänt snedstreck, även om enkla citattecken också kunde ha använts i det fallet.


              %h Dirname; de ledande katalogerna för filens namn
I många fall kan man föredra syntaxen `-exec ... +` eller bättre syntaxen `-execdir ... +` av prestanda- och säkerhetsskäl.
                    (alla utom det sista elementet). Om filnamnet
                    innehåller inga snedstreck (eftersom den är i strömmen
                    katalog) %h-specifikationen expanderas till `.'. För
                    filer som i sig är kataloger och innehåller
                    ett snedstreck (inklusive / ), %h expanderar till det tomma
                    sträng. Se avsnittet EXEMPEL för ett exempel.


              %H Startpunkt under vilken filen hittades.
=== Traversera filsystemet bara en gång - för 2 olika åtgärder ===
* Traversera filsystemet bara en gång och lista set-user-ID filer och kataloger i /root/suid.txt och stora filer i /root/big.txt.


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


              %k Mängden diskutrymme som används för denna fil i 1 KB
Detta exempel använder radfortsättningssymbolen '\' på de första två raderna för att instruera skalet att fortsätta läsa kommandot på nästa rad.
                    block. Eftersom diskutrymme allokeras i multiplar
                    av filsystemets blockstorlek är detta vanligtvis
                    större än %s/1024, men den kan också vara mindre om
                    filen är en gles fil.


              %l Objekt med symbolisk länk (tom sträng om filen är
=== Sök filer efter ålder ===
                    inte en symbolisk länk).
* Sök efter filer i din hemmakatalog som har modifierats under de senaste tjugofyra timmarna.


              %m Filens behörighetsbitar (i oktal). Detta alternativ
<code>$ find $HOME -mtime 0</code>
                    använder de "traditionella" talen som de flesta Unix
                    implementeringar använder, men om din speciella
                    implementering använder en ovanlig ordning av oktal
                    behörighetsbitar kommer du att se en skillnad mellan
                    det faktiska värdet av filens läge och utdata
                    av %m. Normalt vill du ha en ledande
                    noll på detta nummer, och för att göra detta bör du använda#
                    -flaggan (som i t.ex. `%#m').


              %M Filens behörigheter (i symbolisk form, som för ls ).
Detta kommando fungerar så här eftersom tiden sedan varje fil senast modifierades delas med 24 timmar och eventuellt restvärde ignoreras. Detta betyder att för att matcha -mtime 0 måste en fil ha en modifiering som är mindre än 24 timmar gammal.
                    Detta direktiv stöds i findutils 4.2.5 och
                    senare.


              %n Antal hårda länkar till fil.
=== Sök filer efter behörigheter ===
* Sök efter filer som är körbara men inte läsbara.


              %p Filens namn.
<code>$ find /sbin /usr/sbin -executable \! -readable -print</code>


              %P Filens namn med namnet på startpunkten
* Sök efter filer som har läs- och skrivbehörighet för deras ägare och grupp, men som andra användare kan läsa men inte skriva till.
                    under vilken den hittades borttagen.


              %s Filstorlek i byte.
<code>$ find . -perm 664</code>


              %S Filens gleshet. Detta beräknas som
Filer som uppfyller dessa kriterier men har andra behörighetsbitar inställda (till exempel om någon kan köra filen) kommer inte att matchas.
                    (BLOCKSIZE*st_blocks /st_size). Det exakta värdet
                    du får för en vanlig fil av en viss
                    längden är systemberoende. Dock normalt
                    glesa filer kommer att ha värden mindre än 1.0, och
                    filer som använder indirekta block kan ha ett värde
                    vilket är större än 1,0. I allmänhet numret
                    av block som används av en fil är filsystemberoende.
                    Värdet som används för BLOCKSIZE är systemberoende,
                    men är vanligtvis 512 byte. Om filstorleken är
                    noll, det utskrivna värdet är odefinierat. På system
                    som saknar stöd för st_blocks, en fils
                    glesheten antas vara 1,0.


              %t Filens senaste ändringstid i formatetreturneras av funktionen
* Sök efter filer som har läs- och skrivbehörighet för deras ägare och grupp och som andra användare kan läsa, utan att ta hänsyn till närvaron av eventuella extra behörighetsbitar (till exempel körbarhetsbiten).
                    C ctime(3) .


              %T k    Filens senaste ändringstid i formatet
<code>$ find . -perm -664</code>
                    specificeras av k , vilket är samma som för %A.


              %u Filens användarnamn, eller numeriskt användar-ID om användaren
Detta kommer att matcha en fil som har läge 0777, till exempel.
                    har inget namn.


              %U Filens numeriska användar-ID.
* Sök efter filer som är skrivbara av någon (deras ägare, deras grupp eller någon annan).


              %y Filtyp (som i ls -l ), U=okänd typ
<code>$ find . -perm /222</code>
                    (borde inte hända)


              %Y Filtyp (som %y), plus följ symboliska länkar:
* Sök efter filer som är skrivbara av antingen deras ägare eller deras grupp.
                    `L'=loop, `N'=befintlig, `?' för alla andra fel
                    när man bestämmer typen av målet för en
                    symbolisk länk.


              %Z (endast SELinux) filens säkerhetskontext.
<code>$ find . -perm /220
  $ find . -perm /u+w,g+w
  $ find . -perm /u=w,g=w</code>


              %{ %[ %(
Alla tre av dessa kommandon gör samma sak, men den första använder den oktala representationen av filläget, och de andra två använder den symboliska formen. Filerna behöver inte vara skrivbara av både ägaren och gruppen för att matchas; det räcker med att en av dem är det.
                    Reserverad för framtida bruk.


              Ett `%'-tecken följt av ett annat tecken är
* Sök efter filer som är skrivbara av både deras ägare och deras grupp.
              kasseras, men det andra tecknet skrivs ut (lita inte
              på detta, eftersom ytterligare formattecken kan införas).
              En `%' i slutet av formatargumentet orsakar odefinierat
              beteende eftersom det inte finns någon följande karaktär. I några
              lokaler, kan det dölja dina dörrnycklar, medan det i andra
              kan ta bort den sista sidan från romanen du läser.


              Direktiven %m och %d stöder flaggorna # , 0 och + , men
<code>$ find . -perm -220
              de andra direktiven gör det inte, även om de trycker siffror.
  $ find . -perm -g+w,u+w</code>
              Numeriska direktiv som inte stöder dessa flaggor inkluderar
              G , U , b , D , k och n . "-"-formatflaggan stöds och
              ändrar justeringen av ett fält från högerjusterat
              (vilket är standard) till vänsterjusterad.


              Se avsnittet OVENLIGA FILNAMN för information om
Båda dessa kommandon gör samma sak.
              hur ovanliga tecken i filnamn hanteras.


      -beskär Sant; om filen är en katalog, gå inte ner i den.
* En mer avancerad sökning behörigheter.
              Om -djup ges, har -prune ingen effekt. Eftersom
              -delete innebär -depth , kan du inte använda -prune och
              -delete tillsammans. Till exempel att hoppa över katalogen
              src/emacs och alla filer och kataloger under den, och
              skriv ut namnen de andra filerna som hittats, gör något
              så här:
                  hitta . -sökväg ./src/emacs -prune -o -print


      -quit Avsluta omedelbart (med returvärde noll om inga fel har
<code>$ find . -perm -444 -perm /222 \! -perm /111
              inträffade). Detta skiljer sig från -prune eftersom -prune
  $ find . -perm -a+r -perm /a+w \! -perm /a+x</code>
              gäller endast innehållet i beskurna kataloger, medan
              -quit gör helt enkelt att hitta stannar omedelbart. Inget barn
              processer kommer att köras. Alla kommandorader som
              har byggts av -exec ... + eller -execdir ... + are
              anropas innan programmet avslutas. Efter -avsluta är
              körs kommer inga fler filer som anges på kommandoraden
              bearbetas. Till exempel,
              ` find /tmp/foo /tmp/bar  -print -quit ` kommer endast att skrivas ut
              `/tmp/foo`.
              En vanlig användning av -quit är att sluta söka i filen
              system när vi har hittat det vi vill ha. Till exempel om
              vi vill bara hitta en enda fil vi kan göra så här:
                  hitta / -namn nål -print -quit


  OPERATÖRER
Dessa två kommandon söker båda efter filer som är läsbara för alla (-perm -444 eller -perm -a+r), har åtminstone en skrivbit inställd (-perm /222 eller -perm /a+w) men inte är körbara för någon (! -perm /111 eller ! -perm /a+x respektive).
      Listad i fallande prioritetsordning:


      ( expr )
=== Beskärning - utesluta filer och underkataloger ===
              Tvinga företräde. Eftersom parenteser är speciella för
* Kopiera innehållet från /source-dir till /dest-dir, men utelämna filer och kataloger med namnet .snapshot (och allt i dem). Det utesluter också filer eller kataloger vars namn slutar på `~`, men inte deras innehåll.
              shell, du kommer normalt att behöva citera dem. Många av
              exempel den här manualsidan använder snedstreck för detta
              syfte: `\(...\)' istället för `(...)'.


      ! expr True om expr är falskt. Denna karaktär kommer också vanligtvis
<code>$ cd /source-dir
              behöver skydd mot tolkning av skalet.
  $ find . -name .snapshot -prune -o \( \! -name '*~' -print0 \) \
  | cpio -pmd0 /dest-dir</code>


      -inte expr
Konstruktionen -prune -o \( ... -print0 \) är ganska vanlig. Tanken här är att uttrycket före -prune matchar saker som ska beskäras. Men -prune-åtgärden returnerar sant, så följande -o säkerställer att den högra sidan endast utvärderas för de kataloger som inte blev beskärda (innehållet i de beskurna katalogerna besöks inte ens, så deras innehåll är irrelevant). Uttrycket på höger sida av -o är inom parentes endast för tydlighetens skull. Det betonar att -print0-åtgärden endast utförs för saker som inte hade -prune tillämpat på dem. Eftersom standard `och`-villkoret mellan tester binder starkare än -o, är detta standard ändå, men parenteserna hjälper till att visa vad som händer.
              Samma som ! expr , men inte POSIX-kompatibel.


      expr1 expr2
* Givet följande katalog av projekt och deras associerade SCM administrativa kataloger, utför en effektiv sökning efter projektrötterna:
              Två uttryck i rad anses vara sammanfogade med en
              underförstådd -a ; expr2 utvärderas inte om expr1 är falskt.


      expr1 -a expr2
<code>$ find repo/ \
              Samma som expr1 expr2 .
  \( -exec test -d '{}/.svn' \; \
  -or -exec test -d '{}/.git' \; \
  -or -exec test -d '{}/CVS' \; \
  \) -print -prune</code>


      expr1 -och expr2
Exempel på utdata:
              Samma som expr1 expr2 , men inte POSIX-kompatibel.


      expr1 -o expr2
<code>repo/project1/CVS
              Eller; expr2 utvärderas inte om expr1 är sant.
  repo/gnu/project2/.svn
  repo/gnu/project3/.svn
  repo/gnu/project3/src/.svn
  repo/project4/.git</code>


      expr1 -eller expr2
I detta exempel förhindrar -prune onödig nedstigning i kataloger som redan har upptäckts (till exempel söker vi inte i project3/src eftersom vi redan hittade project3/.svn), men säkerställer att syskonkataloger (project2 och project3) hittas.
              Samma som expr1  -o expr2 , men inte POSIX-kompatibel.


      expr1 , expr2
== Andra användbara exempel ==
              Lista; både expr1 och expr2 utvärderas alltid. De
* Sök efter flera filtyper.
              värdet på expr1 kasseras; värdet på listan är
              värdet av expr2 . Kommaoperatorn kan vara användbar för
              söker efter flera olika typer av saker, men
              gå igenom filsystemhierarkin endast en gång. De
              -fprintf action kan användas för att lista de olika matchade
              objekt i flera olika utdatafiler.


      Observera att -a när det anges implicit (till exempel med två
<code>$ find /tmp -type f,d,l</code>
      tester som visas utan en explicit operatör mellan dem) eller
      har uttryckligen högre prioritet än -o . Det betyder att hitta .
      -name afile -o -name bfile -print kommer aldrig att skriva ut afile .
OVENLIGA FILNAMN        topp
      Många av åtgärderna för att hitta resulterar i utskrift av data som
      är under kontroll av andra användare. Detta inkluderar filnamn,
      storlekar, modifieringstider och så vidare. Filnamn är en
      potentiellt problem eftersom de kan innehålla vilket tecken som helst förutom
      `\0' och `/'. Ovanliga tecken i filnamn kan göra oväntat
      och ofta oönskade saker till din terminal (t.ex.
      ändra inställningarna för dina funktionstangenter på vissa terminaler).
      Ovanliga karaktärer hanteras olika av olika handlingar, som
      beskrivet nedan.


      -print0, -fprint0
Sök efter filer, kataloger och symboliska länkar i katalogen /tmp genom att ange dessa typer som en komma-separerad lista (GNU-tillägg), vilket annars är ekvivalent med det längre, men mer portabla:
              Skriv alltid ut det exakta filnamnet, oförändrat, även om
              utgången går till en terminal.


      -ls, -fls
<code>$ find /tmp \( -type f -o -type d -o -type l \)</code>
              Ovanliga karaktärer undkommer alltid. Vitt utrymme,
              omvänt snedstreck och dubbla citattecken skrivs ut med
              C-stil escaping (till exempel `\f', `\"'). Annat ovanligt
              tecken skrivs ut med en oktal escape. Övrig
              utskrivbara tecken (för -ls och -fls är dessa
              tecken mellan oktal 041 och 0176) skrivs ut som de är.


      -printf, -fprintf
* Sök efter filer med det specifika namnet "needle" och sluta omedelbart när vi hittar den första.
              Om utgången inte går till en terminal skrivs den ut
              i befintligt skick. Annars beror resultatet på vilket direktiv
              är i bruk. Direktiven %D, %F, %g, %G, %H, %Y och %y
              expandera till värden som inte är under kontroll av filer"
              ägare, och så skrivs de ut som de är. Direktiven %a, %b,
              %c, %d, %i, %k, %m, %M, %n, %s, %t, %u och %U har värden
              som är under kontroll av filers ägare men vilka
              kan inte användas för att skicka godtyckliga data till terminalen, och
              så dessa skrivs ut som de är. Direktiven %f, %h, %l, %p
              och %P är citerade. Denna citat utförs på samma sätt
              sätt som för GNU ls . Detta är inte samma citeringsmekanism
              som den som används för -ls och -fls . Om du kan
              bestäm vilket format som ska användas för utmatningen av hitta sedan det
              är normalt bättre att använda `\0' som en terminator än att använda
              nyrad, eftersom filnamn kan innehålla blanksteg och nyrad
              tecken. Inställningen för LC_CTYPE -miljön
              variabel används för att bestämma vilka tecken som måste vara
              citerade.


      -tryck, -ftryck
<code>$ find / -name needle -print -quit</code>
              Citering hanteras på samma sätt som för -printf och
              -fprintf . Om du använder hitta i ett skript eller i en
              situation där de matchade filerna kan vara godtyckliga
              namn bör du överväga att använda -print0 istället för
              -print .


      Åtgärderna -ok och -okdir skriver ut det aktuella filnamnet som det är.
* Demonstrera tolkningen av formatdirektiven %f och %h i -printf-åtgärden för vissa specialfall. Här är ett exempel inklusive viss utdata.
      Detta kan ändras i en framtida version.
STANDARD KONFORMANCE        topp
      För närmast överensstämmelse med POSIX-standarden bör du ställa in
        miljövariabeln POSIXLY_CORRECT . Följande alternativ är
      specificeras i POSIX-standarden (IEEE Std 1003.1-2008, 2016
      Utgåva):


      -H      Det här alternativet stöds.
<code>$ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find -maxdepth 0 -printf '[%h][%f]\n'</code>
<code>[.][.]</code>
<code>[.][..]</code>
<code>[][/]</code>
<code>[][tmp]</code>
<code>[/tmp][TRACE]</code>
<code>[.][compile]</code>
<code>[compile/64/tests][find]</code>


      -L      Det här alternativet stöds.
== EXIT STATUS ==
find avslutar med status 0 om alla filer behandlas framgångsrikt, större än 0 om fel uppstår. Detta är medvetet en mycket bred beskrivning, men om returvärdet är icke-noll, bör du inte lita på korrektheten i resultaten från find.


      -name  Det här alternativet stöds, men POSIX-överensstämmelse beror på
När något fel uppstår, kan find stanna omedelbart, utan att slutföra alla specificerade åtgärder. Till exempel kan vissa startpunkter inte ha blivit undersökta eller vissa väntande programkörningar för -exec ... {} + eller -execdir ... {} + kanske inte har utförts.
              POSIX-överensstämmelsen för systemets fnmatch(3) -bibliotek
              fungera. Från och med findutils-4.2.2, skalmetatecken
              (`*', `?' eller `[]' till exempel) matchar en ledande `.',
              eftersom IEEE PASC-tolkning 126 kräver detta. Detta
              är en ändring från tidigare versioner av findutils.


      -typ  Stöds. POSIX anger `b', `c', `d', `l', `p', `f'
== HISTORIK ==
              och `s'. GNU find stöder också `D', som representerar en dörr,
Ett find-program dök upp i Version 5 Unix som en del av Programmer's Workbench-projektet och skrevs av Dick Haight. Doug McIlroy's A Research UNIX Reader: Annotated Excerpts from the Programmer’s Manual, 1971-1986 ger ytterligare detaljer; du kan läsa det online på <https://www.cs.dartmouth.edu/~doug/reader.pdf>.
              där OS tillhandahåller dessa. Dessutom tillåter GNU find
              flera typer som ska anges samtidigt i ett komma-
              separerad lista.


      -ok    Stöds. Tolkning av svaret är enl
GNU find skrevs ursprungligen av Eric Decker, med förbättringar av David MacKenzie, Jay Plett och Tim Wood. Idén för find -print0 och xargs -0 kom från Dan Bernstein.
              "ja"- och "nej"-mönstren som väljs genom att ställa in
              LC_MESSAGES miljövariabel. När
              miljövariabeln POSIXLY_CORRECT är inställd kommer dessa
              mönster tas systemets definition av ett positivt (ja)
              eller negativt (ingen) svar. Se systemets dokumentation
              för nl_langinfo(3) , särskilt YESEXPR och NOEXPR.
              När POSIXLY_CORRECT inte är inställt är mönstren istället
              hämtad från finds egen meddelandekatalog.


      -nyare Stöds. Om den angivna filen är en symbolisk länk, är den
== KOMPATIBILITET ==
              är alltid bortskämd. Detta är en förändring från tidigare
Från och med findutils-4.2.2 matchar skalets metatecken (`*', `?' eller `[]' till exempel) som används i filnamnsmönster en inledande `.', eftersom IEEE POSIX-tolkning 126 kräver detta.
              beteende, som brukade ta den relevanta tiden från
              symbolisk länk; se avsnittet HISTORIK nedan.


      -perm  Stöds. Om miljövariabeln POSIXLY_CORRECT är
Från och med findutils-4.3.3, matchar -perm /000 nu alla filer istället för inga.
              inte satt, vissa lägesargument (till exempel +a+x) som är
              inte giltigt i POSIX stöds för bakåt-
              kompatibilitet.


      Andra primärval
Nanosekundsupplösningstidsstämplar implementerades i findutils-4.3.3.
              Primärerna -atime , -ctime , -depth , -exec , -group ,
              -links , -mtime , -nogroup , -nouser , -ok , -path , -print ,
              -prune , -size , -user och -xdev är allt stöds.


      POSIX-standarden anger parenteser `(', `)', negation `!'
Från och med findutils-4.3.11, sätter -delete-åtgärden finds avslutningsstatus till ett icke-noll värde när den misslyckas. Find kommer dock inte avsluta omedelbart. Tidigare påverkades inte finds avslutningsstatus av -delete-misslyckanden.
      och de logiska OCH/ELLER-operatorerna -a och -o .


      Alla andra alternativ, predikat, uttryck och så vidare är
{| class="wikitable"
      tillägg utöver POSIX-standarden. Många av dessa tillägg
|+
      är dock inte unika för GNU-fynd.
! Funktion
! Lades till i
! Förekommer också i
|-
| -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
|
|-
| -print0
| 2.0
| POSIX (från Issue 8)
|}


      POSIX-standarden kräver att hitta detekterar loopar:
Syntaxen -perm +MODE togs bort i findutils-4.5.12, till förmån för -perm /MODE. Syntaxen +MODE hade varit avskriven sedan findutils-4.2.21 som släpptes 2005.


              Sökverktyget ska detektera oändliga loopar ; det är,
== INTE BUGGAR ==
              gå in i en tidigare besökt katalog som är en
=== Operatörsprioritetsöverraskningar ===
              förfader till den senaste filen som påträffades. När den upptäcker en
Kommandot find . -name afile -o -name bfile -print kommer aldrig att skriva ut afile eftersom detta faktiskt är ekvivalent med find . -name afile -o \( -name bfile -a -print \). Kom ihåg att prioriteten för -a är högre än för -o och när det inte finns någon operatör specificerad mellan tester, antas -a.
              infinite loop, find ska skriva ett diagnostiskt meddelande till
              standardfel och ska antingen återställa sin position i
              hierarkin eller avsluta.


      GNU find uppfyller dessa krav. Länkantalet på
=== Felmeddelandet "paths must precede expression" ===
      kataloger som innehåller poster som är hårda länkar till en
<pre>$ find . -name *.c -print
      förfader kommer ofta att vara lägre än de annars borde vara. Detta
      find: paths must precede expression
      kan innebära att GNU-fynd ibland optimerar bort besöket
      find: possible unquoted pattern after predicate `-name'?</pre>
      av en underkatalog som faktiskt är en länk till en förfader. Eftersom
      find faktiskt inte går in i en sådan underkatalog, det är tillåtet
      för att undvika att sända ett diagnostiskt meddelande. Även om detta beteende
      kan vara något förvirrande, det är osannolikt att någon faktiskt
      beror på detta beteende. Om lövoptimeringen har varit
      avstängd med -noleaf , kommer katalogposten alltid att vara det
      undersökt och diagnosmeddelandet kommer att utfärdas där det finns
      lämplig. Symboliska länkar kan inte användas för att skapa filsystem
      cykler som sådan, men om alternativet -L eller -följ är in
      användning, utfärdas ett diagnostiskt meddelande när hitta stöter på en loop
      av symboliska länkar. Som med slingor som innehåller hårda länkar, bladet
      optimering innebär ofta att hitta vet att den inte behöver
      att anropa stat() eller chdir() på den symboliska länken, så detta
      diagnostik är ofta inte nödvändig.


      Alternativet -d stöds för kompatibilitet med olika BSD
Detta händer när skalet kunde expandera mönstret *.c till mer än ett filnamn som finns i den aktuella katalogen och överföra de resulterande filnamnen i kommandoraden till find så här:
      system, men du bör använda det POSIX-kompatibla alternativet -depth
<code>find . -name frcode.c locate.c word_io.c -print</code>
      istället.
Det kommandot kommer naturligtvis inte att fungera, eftersom -name-predikatet tillåter exakt ett mönster som argument. Istället för att göra saker på detta sätt, bör du omsluta mönstret med citattecken eller undvika jokertecknet, vilket gör det möjligt för find att använda mönstret med jokertecken under sökningen efter filnamnsmatchning istället för filnamn expanderade av förälderskalet:
Miljövariabeln POSIXLY_CORRECT
<code>$ find . -name '*.c' -print</code>
      påverkar inte
<code>$ find . -name \*.c -print</code>
      beteendet hos -regex- eller -iregex -testen eftersom dessa tester
      är inte specificerade i POSIX-standarden.
MILJÖVARIABLER        topp
      LANG Ger ett standardvärde för internationaliseringen
              variabler som är inställda eller null.


      LC_ALL Om inställt på ett icke-tomt strängvärde, åsidosätt värdena för
== BUGGAR ==
              alla andra internationaliseringsvariabler.
Det finns säkerhetsproblem som är inneboende i det beteende som POSIX-standarden specificerar för find, vilket därför inte kan åtgärdas. Till exempel är -exec-åtgärden i sig osäker, och -execdir bör användas istället.


      LC_COLLATE
Miljövariabeln LC_COLLATE har ingen effekt på -ok-åtgärden.
              POSIX-standarden anger att denna variabel påverkar
              mönstermatchningen som ska användas för alternativet -name . GNU
              find använder biblioteksfunktionen fnmatch(3) och så stöd
              för LC_COLLATE beror systembiblioteket. Detta
              variabeln påverkar också tolkningen av svaret
              till -ok ; medan variabeln LC_MESSAGES väljer den faktiska
              mönster som används för att tolka svaret på -ok , den
              tolkning av eventuella parentesuttryck i mönstret
              kommer att påverkas av LC_COLLATE .


      LC_CTYPE
== RAPPORTERA BUGGAR ==
              Denna variabel påverkar behandlingen av karaktärsklasser
GNU findutils onlinehjälp:
              används i reguljära uttryck och även med -name- testet,
<https://www.gnu.org/software/findutils/#get-help>
              om systemets biblioteksfunktion fnmatch(3) stöder detta.
Rapportera eventuella översättningsfel till
              Denna variabel påverkar också tolkningen av ev
<https://translationproject.org/team/>
              teckenklasser i reguljära uttryck som används för
              tolka svaret på prompten från -ok . Miljövariabeln
              LC_CTYPE kommer också att påverka vilken
              tecken anses vara oskrivbara när filnamn
              är tryckta; se avsnittet OVENLIGA FILNAMN.


      LC_MESSAGES
Rapportera andra problem via formuläret på GNU Savannah bug tracker:
              Bestämmer den plats som ska användas för internationaliserad
<https://savannah.gnu.org/bugs/?group=findutils>
              meddelanden. Om miljövariabeln POSIXLY_CORRECT är
Allmänna ämnen om GNU findutils-paketet diskuteras bug-findutils mailinglistan:
              uppsättning, detta avgör också tolkningen av
<https://lists.gnu.org/mailman/listinfo/bug-findutils>
              svar uppmaningen från -ok- åtgärden.


      NLSPATH
== COPYRIGHT ==
              Bestämmer platsen för internationaliseringen
Copyright © 1990–2024 Free Software Foundation, Inc. Licens GPLv3+: GNU GPL version 3 eller senare
              meddelandekataloger.
<https://gnu.org/licenses/gpl.html>.
Detta är fri programvara: du är fri att ändra och distribuera den. Det finns INGEN GARANTI, i den utsträckning lagen tillåter.


      PATH Påverkar katalogerna som söks för att hitta
== SE ÄVEN ==
              körbara filer som anropas av -exec , -execdir , -ok och -okdir .
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)


      POSIXLY_CORRECT
Full dokumentation <https://www.gnu.org/software/findutils/find> eller tillgänglig lokalt via: info find
              Bestämmer blockstorleken som används av -ls och -fls . Om
              POSIXLY_CORRECT är inställt är blocken enheter på 512 byte.
              Annars är de enheter på 1024 byte.


              Om du ställer in denna variabel stänger du också av varningsmeddelanden
== KOLOFON ==
              (det vill säga antyder -nowarn ) som standard, eftersom POSIX
Denna sida är en del av findutils (find utilities) projektet. Information om projektet finns på
              kräver att förutom utdata för -ok , alla meddelanden
⟨http://www.gnu.org/software/findutils/⟩. Om du har en bugg-rapport för denna manualsida, se
              tryckt på stderr är diagnostik och måste resultera i en
⟨https://savannah.gnu.org/bugs/?group=findutils⟩. Denna sida erhölls från projektets uppströms Git-repository
              utgångsstatus som inte är noll.
⟨git://git.savannah.gnu.org/findutils.git⟩ den 2024-06-14. (Vid den tiden var datumet för den senaste committen som hittades i
repositoryt 2024-06-03.) Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna KOLOFON (som inte är en del av den ursprungliga manualen), skicka ett mail till
man-pages@man7.org.


              När POSIXLY_CORRECT inte är inställt behandlas -perm +zzz
= Sidslut =
              precis som -perm /zzz om +zzz inte är ett giltigt symboliskt läge.
Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
              När POSIXLY_CORRECT är inställt behandlas sådana konstruktioner
https://www.linux.se/kontaka-linux-se/
              som ett fel.
<BR><BR>Tack till [https://datorhjalp.se Datorhjälp] som har  sponsrat Linux.se med webserver.


              När POSIXLY_CORRECT är inställt kommer svaret på prompten
[[Kategori:Linuxkommandon]]
              gjord av -ok handlingen tolkas enligt
              systemets meddelandekatalog, till skillnad från enl
              hitta egna meddelandeöversättningar.
 
      TZ Påverkar den tidszon som används för en del av de tidsrelaterade
              formatdirektiv av -printf och -fprintf .
EXEMPEL        överst
  Enkel `find|xargs`-metod
      • Hitta filer med namnet core i eller under katalogen /tmp and
              radera dem.
 
                  $ hitta /tmp -namn kärna -typ f -print | xargs /bin/rm -f
 
              Observera att detta kommer att fungera felaktigt om det finns några
              filnamn som innehåller nya rader, enkla eller dubbla citattecken, eller
              mellanslag.
 
  Säkrare `find -print0 | xargs -0` approach
      • Hitta filer med namnet core i eller under katalogen /tmp and
              radera dem, bearbeta filnamn på ett sådant sätt att filen
              eller katalognamn som innehåller enkla eller dubbla citattecken,
              mellanslag eller nyrader hanteras korrekt.
 
                  $ hitta /tmp -namn kärna -typ f -print0 | xargs -0 /bin/rm -f
 
              -namntestet kommer före -typetestet för att
              undvika att behöva anropa stat(2) på varje fil.
 
      Observera att det fortfarande pågår ett lopp mellan tidsfynd genomgångar
      hierarkin som skriver ut de matchande filnamnen, och tiden för
      process som körs av xargs fungerar med den filen.
 
  Bearbetar godtyckliga utgångspunkter
      • Med tanke på att ett annat programproggy förfiltrerar och skapar
              en enorm NUL-separerad lista med filer, bearbeta dem som
              startpunkter och hitta alla vanliga, tomma filer bland
              dem:
 
                  $ proggy | hitta -filer0-från - -maxdjup 0 -typ f -tom
 
              Användningen av `-filer0-från -` betyder att läsa namnen på
              utgångspunkter från standardinmatning , dvs från röret;
              och -maxdepth 0 säkerställer att endast dessa poster explicit
              granskas utan att återkomma i kataloger (i
              om en av utgångspunkterna är en).
 
  Utföra ett kommando för varje fil
      • Kör fil på varje fil i eller under den aktuella katalogen.
 
                  $ hitta. -typ f -exec filen '{}' \;
 
              Observera att hängslen är omgivna av enkla citattecken
              för att skydda dem från tolkning som skalmanus
              skiljetecken. Semikolonet skyddas på liknande sätt av
              användning av ett snedstreck, även om enstaka citattecken kunde ha varit det
              används i så fall också.
 
      I många fall kanske man föredrar `-exec ... +` eller bättre
        `-execdir ... +` -syntaxen av prestanda- och säkerhetsskäl.
 
  Gå igenom filsystemet bara en gång - för 2 olika åtgärder
      • Gå igenom filsystemet bara en gång, lista set-user-ID
              filer och kataloger till /root/suid.txt och stora filer
              till /root/big.txt .
 
                  $ hitta / \
                      \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \ \(
                      -storlek +100M -fprintf /root/big.txt '%- 10s %p\n' \)
 
              Det här exemplet använder radfortsättningstecknet '\' på
              de två första raderna för att instruera skalet att fortsätta
              läser kommandot på nästa rad.
 
  Söker efter filer efter ålder
      • Sök efter filer i din hemkatalog som har varit
              har ändrats under de senaste tjugofyra timmarna.
 
                  $ hitta $HOME -mtid 0
 
              Detta kommando fungerar på detta sätt eftersom tiden sedan varje
              filen ändrades senast delas med 24 timmar och eventuella
              resten kasseras. Det betyder att för att matcha -mtime
              0 måste en fil ha en modifiering i det förflutna
              vilket är mindre än 24 timmar sedan.
 
  Söker efter filer med behörigheter
      • Sök efter filer som är körbara men inte läsbara.
 
                  $ hitta /sbin /usr/sbin -körbar \! -läsbart -tryck
 
      • Sök efter filer som har läs- och skrivbehörighet för
              deras ägare och grupp, men som andra användare kan läsa men
              inte skriva till.
 
                  $ hitta. -perm 664
 
              Filer som uppfyller dessa kriterier men har andra behörigheter
              bitar set (till exempel om någon kan köra filen)
              kommer inte att matchas.
 
      • Sök efter filer som har läs- och skrivbehörighet för
              deras ägare och grupp, och som andra användare kan läsa,
              utan hänsyn till förekomsten av något extra tillstånd
              bitar (till exempel den körbara biten).
 
                  $ hitta. -perm -664
 
              Detta kommer att matcha en fil som har läge 0777 , till exempel.
 
      • Sök efter filer som är skrivbara av någon (deras
              ägare, eller deras grupp eller någon annan).
 
                  $ hitta. -perm /222
 
      • Sök efter filer som är skrivbara av någon av deras ägare
              eller deras grupp.
 
                  $ hitta. -perm /220
                  $ hitta . -perm /u+w,g+w
                  $ hitta . -perm /u=w,g=w
 
              Alla dessa tre kommandon gör samma sak, men
              den första använder den oktala representationen av filläget,
              och de andra två använder den symboliska formen. Filerna gör det inte
              måste kunna skrivas av både ägaren och gruppen
              matchade; antingen kommer att göra.
 
      • Sök efter filer som är skrivbara av båda deras ägare
              och deras grupp.
 
                  $ hitta. -perm -220
                  $ hitta . -perm -g+w,u+w
 
              Båda dessa kommandon gör samma sak.
 
      • En mer detaljerad sökning på behörigheter.
 
                  $ hitta. -perm -444 -perm /222 \! -perm /111
                  $ hitta . -perm -a+r -perm /a+w \! -perm /a+x
 
              Dessa två kommandon söker båda efter filer som är läsbara
              för alla ( -perm -444 eller -perm -a+r ), har minst
              en skrivbit set ( -perm /222 eller -perm /a+w ) men är det inte
              körbar för vem som helst ( ! -perm /111 eller ! -perm /a+x
              respektive).
 
  Beskärning - utelämna filer och underkataloger
      • Kopiera innehållet i /source-dir till /dest-dir , men utelämna
              filer och kataloger med namnet .snapshot (och allt i
              dem). Det utelämnar också filer eller kataloger vars namn slutar
              i `~', men inte deras innehåll.
 
                  $ cd /source-dir
                  $ hitta . -namn .snapshot -prune -o \( \! -namn '*~' -print0 \) \
                      | cpio -pmd0 /dest-dir
 
              Konstruktionen -prune -o \( ... -print0 \) är ganska vanlig.
              Tanken här är att uttrycket före -prune matchar
              saker som ska beskäras. Men åtgärden -beskär
              själv returnerar sant, så följande -o säkerställer att
              höger sida utvärderas endast för dessa kataloger
              som inte beskärs (innehållet i beskärningen
              kataloger besöks inte ens, så deras innehåll är det
              irrelevant). Uttrycket på höger sida av
              -o står inom parentes endast för tydlighetens skull. Det understryker det
              åtgärden -print0 äger rum endast för saker som inte gjorde det
              har -prune applicerat på dem. Eftersom standard "och"
              tillstånd mellan testerna binder hårdare än -o , detta
              är standard ändå, men parenteserna hjälper till att visa
              vad händer.
 
      • Med tanke på följande katalog över projekt och deras
              associerade SCM administrativa kataloger, utföra en
              effektivt söka efter projektens rötter:
 
                  $ hitta repo/ \
                      \( -exec test -d '{}/.svn' \; \
                      -eller -exec test -d '{}/.git' \; \
                      -eller -exec test -d '{}/ CVS' \; \
                      \) -print -prune
 
              Exempelutgång:
 
                  repo/project1/CVS
                  repo/gnu/project2/.svn
                  repo/gnu/project3/.svn
                  repo/gnu/project3/src/.svn
                  repo/project4/.git
 
              I det här exemplet förhindrar -prune onödig nedstigning till
              kataloger som redan har upptäckts (till exempel
              vi söker inte i project3/src eftersom vi redan hittat
              project3/.svn ), men ser till att syskonkataloger ( project2
              och project3 ) hittas.
 
  Andra användbara exempel
      • Sök efter flera filtyper.
 
                  $ hitta /tmp -typ f,d,l
 
              Sök efter filer, kataloger och symboliska länkar i
              katalogen /tmp skickar dessa typer som kommaseparerade
              list (GNU-tillägg), som annars motsvarar
              längre, men ändå mer bärbar:
 
                  $ hitta /tmp \( -typ f -o -typ d -o -typ l \)
 
      • Sök efter filer med det speciella namnet nål och stoppa
              direkt när vi hittar den första.
 
                  $ hitta / -namn nål -print -quit
 
      • Demonstrera tolkningen av formaten %f och %h
              direktiv från -printf- åtgärden för vissa hörnfall.
              Här är ett exempel inklusive en del utdata.
 
                  $ hitta. .. / /tmp /tmp/TRACE kompilera compile/64/tests/find -maxdepth 0 -printf '[%h][%f]\n' [.][.] [.][..]
                  [
                  ]
                  [ /]
                  [][tmp]
                  [/tmp][TRACE]
                  [.][compile]
                  [compile/64/tests][find]
EXIT STATUS        topp
      hitta utgångar med status 0 om alla filer bearbetas framgångsrikt,
      större än 0 om fel uppstår. Detta är medvetet en mycket
      bred beskrivning, men om returvärdet inte är noll, du
      bör inte förlita sig på riktigheten av resultaten av hitta .
 
      När något fel uppstår kan sökning stoppas omedelbart, utan
      slutföra alla angivna åtgärder. Till exempel några startande
      poäng kanske inte har granskats eller något pågående program
      anrop för -exec ... {} + eller -execdir ... {} + kanske inte har
      utförts.
HISTORIA        topp
      Ett sökprogram dök upp i version 5 Unix som en del av
      Programmerarens Workbench-projekt och skrevs av Dick Haight.
      Doug McIlroy's A Research UNIX Reader: Annotated Excerpts from
      the Programmer's Manual, 1971-1986 ger några ytterligare
      detaljer; du kan läsa den online på
      < https://www.cs.dartmouth.edu/~doug/reader.pdf >.
 
      GNU -fynd skrevs ursprungligen av Eric Decker, med förbättringar
      av David MacKenzie, Jay Plett och Tim Wood. Idén till find
      -print0 och xargs -0 kom från Dan Bernstein.
KOMPATIBILITET        topp
      Från och med findutils-4.2.2, skalmetatecken (`*', `?' eller `[]' för
      exempel) som används i filnamnsmönster matchar en ledande `.', eftersom
      IEEE POSIX-tolkning 126 kräver detta.
 
      Från och med findutils-4.3.3 matchar nu -perm /000 alla filer istället
      av ingen.
 
      Nanosekund-upplösning tidsstämplar implementerades i
      findutils-4.3.3.
 
      Från och med findutils-4.3.11, anger åtgärdsuppsättningarna -delete find 's exit
      status till ett värde som inte är noll när det misslyckas. Hitta kommer dock inte
      gå ut omedelbart. Tidigare påverkades Finds utgångsstatus opåverkadgenom att -delete
      misslyckades .
 
      Funktion tillagd i Förekommer också i
      -filer0-från 4.9.0
      -newerXY 4.3.3 BSD
      -D 4.3.1
      -O 4.3.1
      -läsbar 4.3.0
      -skrivbar 4.3.0
      -körbar 4.3.0
      -regextyp 4.2.24
      -exec ... + 4.2.12 POSIX
      -execdir 4.2.12 BSD
      -okdir 4.2.12
      -sammafil 4.2.11
      -H 4.2.5 POSIX
      -L 4.2.5 POSIX
      -P 4.2.5 BSD
      -radera 4.2.3
      -sluta 4.2.3
      -d 4.2.3 BSD
      -helnamn 4.2.0
      -wholename 4.2.0
      -ignore_readdir_race 4.2.0
      -fls 4.0
      -ilname 3.8
      -iname 3.8
      -ipath 3.8
      -iregex 3.8
 
      Syntaxen -perm +MODE togs bort i findutils-4.5.12, till förmån
      av -perm /MODE . +MODE- syntaxen hade fasats ut sedan dess
      findutils-4.2.21 som släpptes 2005.
ICKE-BUGS       
  Operatörsprioritet överraskar
      Kommandot hitta . -name afile -o -name bfile -print kommer aldrig
      print afile eftersom detta faktiskt motsvarar hitta . -name
      afile -o \( -name bfile -a -print \) . Kom ihåg att
      företräde för -a är högre än för -o och när det finns nej
      operatör specificerad mellan testerna, -a antas.
 
  "sökvägar måste föregå uttryck" felmeddelande
      $ hitta . -namn *.c -print
      hitta: sökvägar måste föregå uttryck
      hitta: möjligt mönster utan citat efter predikatet `-name'?
 
      Detta händer när skalet kunde utöka mönstret *.c till mer
      än ett filnamn som finns i den aktuella katalogen och passerar
      de resulterande filnamnen på kommandoraden för att hitta så här:
        find . -name frcode.c locate.c word_io.c -print
      Det kommandot kommer naturligtvis inte att fungera, eftersom -name
      predikat tillåter exakt ett mönster som argument. Istället
      av att göra saker på det här sättet, bör du bifoga mönstret i
      citat eller undkomma jokertecknet, vilket gör det möjligt för find att använda
      mönster med jokertecken under sökningen efter filnamn
      matchande istället för filnamn utökade med det överordnade skalet:
      $ hitta. -namn '*.c' -print
      $ hitta . -namn \*.c -print
BUGS
      Det finns säkerhetsproblem i beteendet som
      POSIX-standarden anger för find , vilket därför inte kan vara det
      fast. Till exempel är åtgärden -exec i sig osäker, och
        -execdir bör användas istället.
 
      Miljövariabeln LC_COLLATE har ingen effekt på -ok
      handling.
RAPPORTERING AV BUGGAR
      GNU findutils onlinehjälp:
      < https://www.gnu.org/software/findutils/#get-help >
      Rapportera eventuella översättningsfel till
      < https://translationproject.org/team/ >
 
      Rapportera alla andra problem via formuläret i GNU Savannah-felet
      spårare:
              < https://savannah.gnu.org/bugs/?group=findutils >
      Allmänna ämnen om GNU findutils-paketet diskuteras påe-postlistan
      bug -findutils :
              < https://lists.gnu.org/mailman/listinfo/bug-findutils >
COPYRIGHT        topp
      Copyright © 1990-2023 Free Software Foundation, Inc. Licens
      GPLv3+: GNU GPL version 3 eller senare
      < https://gnu.org/licenses/gpl.html >.
      Detta är fri programvara: du är fri att ändra och distribuera om
      Det. Det finns INGEN GARANTI, i den utsträckning som lagen tillåter.
SE ÄVEN        toppen
      chmod(1) , locate(1) , ls(1) , updatedb(1) , xargs(1) , lstat(2) ,
        stat(2) , ctime(3)  fnmatch(3) , printf(3) , strftime (3) ,
        lokaliserad (5), regex(7)
 
      Fullständig dokumentation < https://www.gnu.org/software/findutils/find >
      eller tillgänglig lokalt via: info hitta
KOLOFON     
      Den här sidan är en del av findutils -projektet (hitta verktyg).
      Information om projektet finns på
      ⟨ http://www.gnu.org/software/findutils/ ⟩. Om du har en bugg
      rapport för denna manualsida, se
      ⟨ https://savannah.gnu.org/bugs/?group=findutils ⟩. Den här sidan var
      hämtat från projektets uppströms Git-förråd
      ⟨git://git.savannah.gnu.org/findutils.git⟩ den 2023-06-23. (På
      den tiden, datumet för det senaste begåvningen som hittades i
      förvaret var 2023-05-23.)

Nuvarande version från 1 september 2024 kl. 19.32

FIND(1)

Allmänna kommandomanualer FIND(1)

NAMN

  • find - sök efter filer i en kataloghierarki

SYNTAX

  • find [-H] [-L] [-P] [-D debugval] [-O nivå] [startpunkt...] [uttryck]

BESKRIVNING

  • Denna manual sida dokumenterar GNU-versionen av find. GNU find söker igenom katalogträdet med start från varje angiven startpunkt genom att utvärdera det givna uttrycket från vänster till höger, enligt reglerna för prioritetsordning (se avsnitt OPERATORER), tills resultatet är känt (den vänstra sidan är falsk för och-operationer, sann för eller), vid vilken punkt find går vidare till nästa filnamn. Om ingen startpunkt anges, antas '.'.
  • Om du använder find i en miljö där säkerheten är viktig (till exempel om du använder den för att söka i kataloger som är skrivbara av andra användare), bör du läsa kapitlet "Säkerhetsöverväganden" i dokumentationen för findutils, som heter Finding Files och kommer med findutils. Detta dokument innehåller också mycket mer detaljer och diskussion än denna manual, så det kan vara en mer användbar informationskälla.

ALTERNATIV

  • Alternativen -H, -L och -P styr behandlingen av symboliska länkar. Kommandoradsargument efter dessa tas att vara namn på filer eller kataloger som ska undersökas, upp till det första argumentet som börjar med '-', eller argumentet '(' eller '!'. Detta argument och eventuella efterföljande argument tas att vara uttrycket som beskriver vad som ska sökas efter. Om inga sökvägar anges, används den aktuella katalogen. Om inget uttryck anges, används uttrycket -print (men du bör troligen överväga att använda -print0 istället).
  • Denna manual sida talar om "alternativ" inom uttryckslistan. Dessa alternativ styr beteendet hos find men anges omedelbart efter det sista sökvägsnamnet. De fem "verkliga" alternativen -H, -L, -P, -D och -O måste dyka upp före det första sökvägsnamnet, om de alls ska användas. En dubbel bindestreck -- kan teoretiskt användas för att signalera att återstående argument inte är alternativ, men detta fungerar egentligen inte på grund av sättet find avgör slutet på de efterföljande sökvägsargumenten: det gör det genom att läsa tills ett uttrycksargument kommer (vilket också börjar med ett '-'). Om ett sökvägsargument skulle börja med ett '-', skulle find behandla det som ett uttrycksargument istället. Därför är det generellt säkrare att förprefixera jokertecken eller tveksamma sökvägsnamn med antingen './' eller använda absoluta sökvägsnamn som börjar med '/'. Alternativt är det generellt säkert, även om det inte är portabelt, att använda GNU-alternativet -files0-from för att skicka godtyckliga startpunkter till find.
  • -P Följer aldrig symboliska länkar. Detta är standardbeteendet. När find undersöker eller skriver ut information om filer, och filen är en symbolisk länk, ska informationen som används tas från den symboliska länkens egna egenskaper.
  • -L Följer symboliska länkar. När find undersöker eller skriver ut information om filer, ska informationen som används tas från egenskaperna hos filen som länken pekar på, inte från länken själv (såvida det inte är en bruten symbolisk länk eller find inte kan undersöka filen som länken pekar på). Användning av detta alternativ implicerar -noleaf. Om du senare använder -P-alternativet kommer -noleaf fortfarande att vara i kraft. Om -L är i kraft och find upptäcker en symbolisk länk till en underkatalog under sin sökning, kommer underkatalogen som pekas ut av den symboliska länken att undersökas.
  • -H Följer inte symboliska länkar, förutom vid bearbetning av kommandoradsargument. När find undersöker eller skriver ut information om filer, ska informationen som används tas från den symboliska länkens egna egenskaper. Det enda undantaget från detta beteende är när en fil som specificeras på kommandoraden är en symbolisk länk och länken kan lösas. I den situationen tas informationen från det som länken pekar på (dvs. länken följs). Informationen om länken själv används som en reserv om filen som länken pekar på inte kan undersökas. Om -H är i kraft och en av sökvägarna som specificeras på kommandoraden är en symbolisk länk till en katalog, kommer innehållet i den katalogen att undersökas (även om förstås -maxdepth 0 skulle förhindra detta).
  • Om fler än ett av -H, -L och -P specificeras, åsidosätter varje de andra; den sista som dyker upp på kommandoraden tar effekt. Eftersom det är standarden bör -P-alternativet anses vara i kraft såvida inte antingen -H eller -L specificeras.
  • GNU find gör ofta filundersökningar under bearbetningen av själva kommandoraden, innan någon sökning har börjat. Dessa alternativ påverkar också hur dessa argument behandlas. Specifikt finns det ett antal tester som jämför filer som listas på kommandoraden mot en fil vi för närvarande överväger. I varje fall kommer den specificerade filen på kommandoraden att ha undersökts och vissa av dess egenskaper kommer att ha sparats. Om den namngivna filen faktiskt är en symbolisk länk och -P-alternativet är i kraft (eller om varken -H eller -L specificerades), kommer informationen som används för jämförelsen att tas från den symboliska länkens egenskaper. Annars tas den från egenskaperna hos filen som länken pekar på. Om find inte kan följa länken (till exempel på grund av att det saknar tillräckliga behörigheter eller om länken pekar på en obefintlig fil) kommer egenskaperna hos länken själv att användas.
  • När -H- eller -L-alternativen är i kraft, kommer alla symboliska länkar som anges som argument för -newer att lösas upp, och tidsstämpeln tas från filen som den symboliska länken pekar på. Samma övervägande gäller för -newerXY, -anewer och -cnewer.
  • -follow alternativet har en liknande effekt som -L, även om det träder i kraft vid den punkt där det dyker upp (dvs. om -L inte används men -follow är, kommer alla symboliska länkar som dyker upp efter -follow på kommandoraden att lösas upp, och de före det kommer inte att göra det).
  • -D debugval Skriv ut diagnostisk information; detta kan vara till hjälp för att diagnostisera problem med varför find inte gör vad du vill. Listan över debug-alternativ ska vara kommaseparerad. Kompatibiliteten för debug-alternativen garanteras inte mellan versioner av findutils. För en komplett lista över giltiga debug-alternativ, se utdata från find -D help. Giltiga debug-alternativ inkluderar:
    • exec Visa diagnostisk information relaterad till -exec, -execdir, -ok och -okdir
    • opt Skriver ut diagnostisk information relaterad till optimeringen av uttrycksträdet; se -O alternativet.
    • rates Skriver ut en sammanfattning som visar hur ofta varje predikat lyckades eller misslyckades.
    • search Navigera katalogträdet verbalt.
    • stat Skriv ut meddelanden när filer undersöks med stat- och lstat-systemanropen. Find-programmet försöker minimera sådana anrop.
    • tree Visa uttrycksträdet i dess ursprungliga och optimerade form.
    • all Aktivera alla andra debug-alternativ (utom help).
    • help Förklara debug-alternativen.
  • -O nivå Aktiverar frågeoptimering. Find-programmet omordnar tester för att påskynda utförandet samtidigt som den övergripande effekten bevaras; det vill säga att predikat med sidoeffekter inte omordnas i förhållande till varandra. De optimeringar som utförs på varje optimeringsnivå är som följer.
0 Motsvarar optimeringsnivå 1.
1 Detta är standardoptimeringsnivån och motsvarar det traditionella beteendet. Uttryck omordnas så att tester baserade enbart på filnamn (till exempel -name och -regex) utförs först.
2 Eventuella -type eller -xtype tester utförs efter eventuella tester baserade enbart på filnamn, men före några tester som kräver information från inode. På många moderna versioner av Unix returneras filtyper av readdir(), så dessa predikat är snabbare att utvärdera än predikat som först måste stat-filen. Om du använder -fstype FOO-predikatet och specificerar ett filsystemtyp FOO som inte är känt (dvs. finns i `/etc/mtab') när find startar, motsvarar det predikatet -false.
3 På denna optimeringsnivå aktiveras den fullständiga kostnadsbaserade frågeoptimeraren. Ordningen på tester modifieras så att billiga (dvs. snabba) tester utförs först och dyrare utförs senare om det behövs. Inom varje kostnadsband utvärderas predikat tidigare eller senare beroende på om de sannolikt kommer att lyckas eller inte. För -o utvärderas predikat som sannolikt kommer att lyckas tidigare, och för -a utvärderas predikat som sannolikt kommer att misslyckas tidigare.
  • Den kostnadsbaserade optimeraren har en fast idé om hur sannolikt det är att ett givet test lyckas. I vissa fall tar sannolikheten hänsyn till den specifika naturen av testet (till exempel antas -type f vara mer sannolikt att lyckas än -type c). Den kostnadsbaserade optimeraren utvärderas för närvarande. Om det inte faktiskt förbättrar find-prestandan, kommer den att tas bort igen. Däremot kan optimeringar som visar sig vara pålitliga, robusta och effektiva aktiveras vid lägre optimeringsnivåer över tid. Standardbeteendet (dvs. optimeringsnivå 1) kommer dock inte att ändras i 4.3.x-versionen. Findutils-testserien kör alla tester på find vid varje optimeringsnivå och säkerställer att resultatet är detsamma.
Omordningen av operationer som utförs av den kostnadsbaserade optimeraren kan resultera i användar-synlig beteendeförändring. Till exempel är predikaten -readable och -empty känsliga för omordning. Om de körs i ordningen -empty -readable kommer ett felmeddelande att utfärdas för oläsliga kataloger. Om de körs i ordningen -readable -empty kommer inget felmeddelande att utfärdas. Detta är anledningen till att sådan omordning av operationer inte utförs vid standardoptimeringsnivån.

UTTRYCK

  • Den del av kommandoraden efter listan över startpunkter är uttrycket. Detta är en typ av frågespecifikation som beskriver hur vi matchar filer och vad vi gör med de filer som matchades. Ett uttryck består av en sekvens av saker:
    • Test Test returnerar ett sant eller falskt värde, vanligtvis på grundval av någon egenskap hos en fil vi överväger. Testet -empty är till exempel sant endast när den aktuella filen är tom.
    • Åtgärder Åtgärder har sidoeffekter (till exempel att skriva ut något på standardutgången) och returnerar antingen sant eller falskt, vanligtvis baserat på om de är framgångsrika eller inte. Åtgärden -print skriver till exempel ut namnet på den aktuella filen på standardutgången.
    • Globala alternativ Globala alternativ påverkar utförandet av tester och åtgärder som specificerats på någon del av kommandoraden. Globala alternativ returnerar alltid sant. Alternativet -depth gör till exempel att find traverserar filsystemet i en djup-först ordning.
    • Positionella alternativ Positionella alternativ påverkar endast tester eller åtgärder som följer dem. Positionella alternativ returnerar alltid sant. Alternativet -regextype är till exempel positionellt, och specificerar den reguljära uttrycks dialekten för reguljära uttryck som förekommer senare på kommandoraden.
    • Operatorer Operatorer sammanfogar de andra objekten inom uttrycket. De inkluderar till exempel -o (vilket betyder logiskt ELLER) och -a (vilket betyder logiskt OCH). Där en operator saknas, antas -a.
  • Åtgärden -print utförs på alla filer för vilka hela uttrycket är sant, om det inte innehåller en åtgärd förutom -prune eller -quit. Åtgärder som förhindrar standard -print är -delete, -exec, -execdir, -ok, -okdir, -fls, -fprint, -fprintf, -ls, -print och -printf.
  • Åtgärden -delete fungerar också som ett alternativ (eftersom den implicerar -depth).

POSITIONELLA ALTERNATIV

  • Positionella alternativ returnerar alltid sant. De påverkar endast tester som förekommer senare på kommandoraden.
  • -daystart Mäter tider (för -amin, -atime, -cmin, -ctime, -mmin och -mtime) från början av idag snarare än från 24 timmar sedan. Detta alternativ påverkar endast tester som visas senare på kommandoraden.
  • -follow Avrådes från att använda; använd istället -L-alternativet. Avföljer symboliska länkar. Implicerar -noleaf. Alternativet -follow påverkar endast de tester som visas efter det på kommandoraden. Om inte -H eller -L-alternativet har specificerats, ändrar positionen för -follow-alternativet beteendet hos -newer-predikatet; alla filer som listas som argument för -newer kommer att avföljas om de är symboliska länkar. Samma övervägande gäller för -newerXY, -anewer och -cnewer. På samma sätt kommer predikatet -type alltid att matcha mot typen av filen som en symbolisk länk pekar på snarare än länken själv. Att använda -follow gör att predikaten -lname och -ilname alltid returnerar falskt.
  • -regextype typ Ändrar den reguljära uttryckssyntax som förstås av -regex och -iregex tester som förekommer senare på kommandoraden. För att se vilka reguljära uttryckstyper som är kända, använd -regextype help. Texinfo-dokumentationen (se SE OCKSÅ) förklarar betydelsen av och skillnaderna mellan de olika typerna av reguljära uttryck. Om du inte använder detta alternativ, beter sig find som om reguljärt uttryckstypen emacs hade specificerats.
  • -warn, -nowarn Slå på eller av varningsmeddelanden. Dessa varningar gäller endast för kommandoradsanvändning, inte för några tillstånd som find kan stöta på när den söker kataloger. Standardbeteendet motsvarar -warn om standardinmatningen är en tty, och till -nowarn annars. Om ett varningsmeddelande som rör kommandoradsanvändning produceras påverkas inte find's exitstatus. Om miljövariabeln POSIXLY_CORRECT är inställd, och -warn också används, är det inte specificerat vilka, om några, varningar som kommer att vara aktiva.

GLOBALA ALTERNATIV

  • Globala alternativ returnerar alltid sant. Globala alternativ träder i kraft även för tester som förekommer tidigare på kommandoraden. För att undvika förvirring bör globala alternativ specificeras på kommandoraden efter listan med startpunkter, precis före det första testet, det positionella alternativet eller åtgärden. Om du specificerar ett globalt alternativ på något annat ställe, kommer find att ge ett varningsmeddelande som förklarar att detta kan vara förvirrande.
  • De globala alternativen förekommer efter listan med startpunkter, och är därför inte samma typ av alternativ som till exempel -L.
  • -d: En synonym för -depth, för kompatibilitet med FreeBSD, NetBSD, MacOS X och OpenBSD.
  • -depth: Bearbeta innehållet i varje katalog innan katalogen själv. Åtgärden -delete implicerar också -depth.
  • -files0-from fil: Läs startpunkterna från en fil istället för att få dem på kommandoraden. I kontrast till de kända begränsningarna av att skicka startpunkter via argument på kommandoraden, nämligen begränsningen av antalet filnamn och den inneboende tvetydigheten i filnamn som kolliderar med alternativnamn, tillåter detta alternativ att säkert överföra ett godtyckligt antal startpunkter till find.

Att använda detta alternativ och skicka startpunkter på kommandoraden är ömsesidigt uteslutande och är därför inte tillåtet samtidigt.

Filargumentet är obligatoriskt. Man kan använda -files0-from - för att läsa listan med startpunkter från standardingången, till exempel från en pipe. I detta fall är åtgärderna -ok och -okdir inte tillåtna, eftersom de uppenbarligen skulle störa inläsningen från standardingången för att få en användarbekräftelse.

Startpunkterna i filen måste separeras med ASCII NUL-tecken. Två på varandra följande NUL-tecken, det vill säga en startpunkt med ett filnamn med noll längd, är inte tillåtet och kommer att leda till ett felmeddelande följt av en icke-noll exitkod senare.

Om den givna filen är tom, bearbetar find ingen startpunkt och avslutas därför omedelbart efter att ha analyserat programargumenten. Detta skiljer sig från standardanropet där find antar den aktuella katalogen som startpunkt om inget sökvägsargument anges.

Bearbetningen av startpunkterna är annars som vanligt, till exempel kommer find att rekursivt gå igenom underkataloger om det inte hindras på annat sätt. För att endast bearbeta startpunkterna kan man dessutom ange -maxdepth 0.

Ytterligare anteckningar: Om en fil listas mer än en gång i indatafilen är det ospecificerat om den besöks mer än en gång. Om filen ändras under operationen av find är resultatet också ospecificerat. Slutligen är sökpositionen inom den namngivna filen vid den tidpunkt då find avslutas, vare sig med -quit eller på något annat sätt, också ospecificerad. Med "ospecificerad" menas här att det kan fungera eller inte fungera, eller göra något specifikt, och att beteendet kan ändras från plattform till plattform eller från version till version av findutils.

  • -help, --help: Skriv ut en sammanfattning av kommandoradsanvändningen av find och avsluta.
  • -ignore_readdir_race: Normalt sett kommer find att ge ett felmeddelande när det misslyckas med att statsa en fil. Om du använder detta alternativ och en fil raderas mellan tiden då find läser namnet på filen från katalogen och tiden då det försöker statsa filen, kommer inget felmeddelande att ges. Detta gäller även för filer eller kataloger vars namn ges på kommandoraden. Detta alternativ träder i kraft vid tidpunkten då kommandoraden läses, vilket innebär att du inte kan söka i en del av filsystemet med detta alternativ på och en del av det med detta alternativ avstängt (om du behöver göra det måste du köra två find-kommandon istället, ett med alternativet och ett utan det).
    • Vidare kommer find med -ignore_readdir_race-alternativet att ignorera fel från -delete-åtgärden om filen har försvunnit sedan föräldrakatalogen lästes: det kommer inte att skriva ut ett felmeddelande och returneringskoden från -delete-åtgärden kommer att vara sant.
  • -maxdepth nivåer: Gå ned högst nivåer (ett icke-negativt heltal) nivåer av kataloger under startpunkterna. Användning av -maxdepth 0 betyder att tester och åtgärder endast tillämpas på startpunkterna själva.
  • -mindepth nivåer: Använd inga tester eller åtgärder på nivåer lägre än nivåer (ett icke-negativt heltal). Användning av -mindepth 1 betyder att alla filer utom startpunkterna behandlas.
  • -mount: Gå inte ner i kataloger på andra filsystem. Ett alternativt namn för -xdev, för kompatibilitet med vissa andra versioner av find.
  • -noignore_readdir_race: Stänger av effekten av -ignore_readdir_race.
  • -noleaf: Optimera inte genom att anta att kataloger innehåller 2 färre underkataloger än deras hårda länkantal. Detta alternativ behövs när man söker i filsystem som inte följer Unix-kataloglänkkonventionen, som CD-ROM eller MS-DOS-filsystem eller AFS-volymmonteringspunkter. Varje katalog på ett normalt Unix-filsystem har minst 2 hårda länkar: dess namn och dess `.'-post. Dessutom har dess underkataloger (om några) varsin `..'-post länkad till den katalogen. När find undersöker en katalog, efter att ha statsat 2 färre underkataloger än katalogens länkantal, vet den att resten av posterna i katalogen är icke-kataloger (`leaf'-filer i katalogträdet). Om endast filernas namn behöver undersökas, finns det inget behov av att statsa dem; detta ger en betydande ökning av sökhastigheten.
  • -version, --version: Skriv ut find-versionens nummer och avsluta.
  • -xdev: Gå inte ner i kataloger på andra filsystem.

TESTER

  • Vissa tester, till exempel -newerXY och -samefile, tillåter jämförelse mellan filen som för närvarande undersöks och någon referensfil som anges på kommandoraden. När dessa tester används bestäms tolkningen av referensfilen av alternativen -H, -L och -P och eventuella tidigare -follow, men referensfilen undersöks endast en gång, vid tidpunkten då kommandoraden analyseras. Om referensfilen inte kan undersökas (till exempel om stat(2)-systemanropet misslyckas för den), utfärdas ett felmeddelande och find avslutas med en icke-noll status.
  • Ett numeriskt argument n kan specificeras för tester (som -amin, -mtime, -gid, -inum, -links, -size, -uid och -used) som:

+n för större än n, -n för mindre än n, n för exakt n.

  • Stödda tester:

-amin n: Filen öppnades senast för mindre än, mer än eller exakt n minuter sedan.

-anewer referens: Tidpunkten för den senaste åtkomsten av den aktuella filen är nyare än tidpunkten för den senaste datamodifieringen av referensfilen. Om referensfilen är en symbolisk länk och -H-alternativet eller -L-alternativet är i kraft, används alltid tidpunkten för den senaste datamodifieringen av filen som den pekar på.

-atime n: Filen öppnades senast för mindre än, mer än eller exakt n*24 timmar sedan. När find räknar ut hur många 24-timmarsperioder sedan filen senast öppnades, ignoreras alla bråkdelar, så för att matcha -atime +1, måste en fil ha öppnats för minst två dagar sedan.

-cmin n: Filens status ändrades senast för mindre än, mer än eller exakt n minuter sedan.

-cnewer referens: Tidpunkten för den senaste statusändringen av den aktuella filen är nyare än tidpunkten för den senaste datamodifieringen av referensfilen. Om referensfilen är en symbolisk länk och -H-alternativet eller -L-alternativet är i kraft, används alltid tidpunkten för den senaste datamodifieringen av filen som den pekar på.

-ctime n: Filens status ändrades senast för mindre än, mer än eller exakt n*24 timmar sedan. Se kommentarerna för -atime för att förstå hur avrundning påverkar tolkningen av filens statusändringstider.

-empty: Filen är tom och är antingen en vanlig fil eller en katalog.

-executable: Matchar filer som är körbara och kataloger som är sökbara (i meningen att lösa filnamn) av den nuvarande användaren. Detta tar hänsyn till åtkomstkontrollistor och andra behörighetsartefakter som -perm-testet ignorerar. Detta test använder systemanropet access(2) och kan därför luras av NFS-servrar som gör UID-mappning (eller root-squashing), eftersom många system implementerar access(2) i klientens kärna och därför inte kan använda den UID-mappningsinformation som finns på servern. Eftersom detta test endast baseras på resultatet av systemanropet access(2) finns det ingen garanti för att en fil för vilken detta test lyckas faktiskt kan köras.

-false: Alltid falskt.

-fstype typ: Filen är på ett filsystem av typen typ. De giltiga filsystemtyperna varierar mellan olika versioner av Unix; en ofullständig lista över filsystemtyper som accepteras på någon version av Unix eller annan är: ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Du kan använda -printf med %F-direktivet för att se typerna av dina filsystem.

-gid n: Filens numeriska grupp-ID är mindre än, mer än eller exakt n.

-group gname: Filen tillhör gruppen gname (numeriskt grupp-ID tillåts).

-ilname mönster: Som -lname, men matchningen är skiftlägesokänslig. Om -L-alternativet eller -follow-alternativet är i kraft, returnerar detta test falskt om inte den symboliska länken är trasig.

-iname mönster: Som -name, men matchningen är skiftlägesokänslig. Till exempel matchar mönstren `fo*' och `F??' filnamnen `Foo', `FOO', `foo', `fOo', etc. Mönstret `*foo*' kommer också att matcha en fil som heter '.foobar'.

-inum n: Filen har inodnummer mindre än, större än eller exakt n. Det är vanligtvis enklare att använda -samefile-testet istället.

  • -ipath mönster: Som -path, men matchningen är skiftlägesokänslig.
  • -iregex mönster: Som -regex, men matchningen är skiftlägesokänslig.
  • -iwholename mönster: Se -ipath. Detta alternativ är mindre portabelt än -ipath.
  • -links n: Filen har färre än, fler än eller exakt n hårda länkar.
  • -lname mönster: Filen är en symbolisk länk vars innehåll matchar skalmönstret mönster. Metatecken behandlar inte `/' eller `.' som speciella. Om -L-alternativet eller -follow-alternativet är i kraft, returnerar detta test falskt om inte den symboliska länken är trasig.
  • -mmin n: Filens data ändrades senast för mindre än, mer än eller exakt n minuter sedan.
  • -mtime n: Filens data ändrades senast för mindre än, mer än eller exakt n*24 timmar sedan. Se kommentarerna för -atime för att förstå hur avrundning påverkar tolkningen av filändringstider.
  • -name mönster: Filens basnamn (sökvägen med de ledande katalogerna borttagna) matchar skalmönstret mönster. Eftersom filnamnets ledande kataloger tas bort, bör mönstret inte innehålla ett snedstreck, eftersom `-name a/b' aldrig kommer att matcha något (och du vill förmodligen använda -path istället). Ett undantag från detta är när du endast använder ett snedstreck som mönster (`-name /'), eftersom det är en giltig sträng för att matcha rotkatalogen "/" (eftersom basnamnet för "/" är "/"). En varning utfärdas om du försöker skicka ett mönster som innehåller en - men som inte enbart består av ett - snedstreck, om inte miljövariabeln POSIXLY_CORRECT är inställd eller alternativet -nowarn används.
  • För att ignorera en katalog och filerna under den, använd -prune istället för att kontrollera varje fil i trädet; se ett exempel i beskrivningen av den åtgärden. Hakar erkänns inte som speciella, trots att vissa skal, inklusive Bash, tilldelar hakar en speciell betydelse i skal-mönster. Filnamnsmatchningen utförs med hjälp av fnmatch(3) bibliotekets funktion. Glöm inte att omge mönstret med citattecken för att skydda det från expansion av skalet.
  • -newer referens: Tidpunkten för den senaste datamodifieringen av den aktuella filen är nyare än tidpunkten för den senaste datamodifieringen av referensfilen. Om referensfilen är en symbolisk länk och -H-alternativet eller -L-alternativet är i kraft, används alltid tidpunkten för den senaste datamodifieringen av filen som den pekar på.
  • -newerXY referens: Lyckas om tidsstämpeln X för filen som undersöks är nyare än tidsstämpeln Y för referensfilen. Bokstäverna X och Y kan vara någon av följande bokstäver:
  • a: Åtkomsttiden för referensfilen
  • B: Födelse
  • c: Inodens statusändringstid för referensfilen
  • m: Modifieringstiden för referensfilens data
  • t: referens tolkas direkt som en tid
  • Vissa kombinationer är ogiltiga; till exempel är det ogiltigt att X är t. Vissa kombinationer är inte implementerade på alla system; till exempel stöds inte B på alla system. Om en ogiltig eller icke stödd kombination av XY specificeras, resulterar det i ett fatalt fel. Tidspecifikationer tolkas som för argumentet till -d alternativet för GNU date. Om du försöker använda födelsetiden för en referensfil och födelsetiden inte kan bestämmas, resulterar detta i ett fatalt felmeddelande. Om du specificerar ett test som hänvisar till födelsetiden för filer som undersöks, kommer detta test att misslyckas för alla filer där födelsetiden är okänd.
  • -nogroup: Ingen grupp motsvarar filens numeriska grupp-ID.
  • -nouser: Ingen användare motsvarar filens numeriska användar-ID.
  • -path mönster: Filnamnet matchar skalmönstret mönster. Metatecken behandlar inte `/` eller `.` som speciella; så, till exempel,
 `find . -path "./sr*sc"`
 kommer att skriva ut en post för en katalog som heter ./src/misc (om en sådan finns). För att ignorera ett helt katalogträd, använd -prune istället för att kontrollera varje fil i trädet. Observera att mönstermatchningstestet gäller hela filnamnet, med start från en av startpunkterna som anges på kommandoraden. Det skulle bara vara meningsfullt att använda ett absolut sökvägsnamn här om den relevanta startpunkten också är en absolut sökväg. Detta innebär att detta kommando aldrig kommer att matcha något:

`find bar -path /foo/bar/myfile -print` Find jämför -path-argumentet med sammanslagningen av ett katalognamn och basnamnet på filen som undersöks. Eftersom sammanslagningen aldrig slutar med ett snedstreck, kommer -path-argument som slutar med ett snedstreck inte att matcha något (utom kanske en startpunkt som specificeras på kommandoraden). Predikatet -path stöds också av HP-UX find och är en del av POSIX 2008-standarden.

  • -perm läge: Filens behörighetsbitar är exakt läge (oktalt eller symboliskt). Eftersom en exakt matchning krävs, om du vill använda detta formulär för symboliska lägen, kan du behöva specificera en ganska komplex lägessträng. Till exempel kommer `-perm g=w` endast att matcha filer som har läge 0020 (det vill säga sådana där gruppskrivbehörighet är den enda behörigheten som är satt). Det är troligare att du vill använda `/' eller `-' formulären, till exempel `-perm -g=w`, vilket matchar alla filer med gruppskrivbehörighet. Se EXEMPEL-sektionen för några illustrativa exempel.
  • -perm -läge: Alla behörighetsbitar i läge är inställda för filen. Symboliska lägen accepteras i denna form, och detta är vanligtvis det sätt på vilket du skulle vilja använda dem. Du måste specificera `u', `g' eller `o' om du använder ett symboliskt läge. Se EXEMPEL-sektionen för några illustrativa exempel.
  • -perm /läge: Någon av behörighetsbitarna i läge är inställda för filen. Symboliska lägen accepteras i denna form. Du måste specificera `u', `g' eller `o' om du använder ett symboliskt läge. Se EXEMPEL-sektionen för några illustrativa exempel. Om inga behörighetsbitar i läge är inställda, matchar detta test vilken fil som helst (tanken här är att vara konsekvent med beteendet hos -perm -000).
  • -perm +läge: Detta stöds inte längre (och har varit föråldrat sedan 2005). Använd istället -perm /läge.
  • -readable: Matchar filer som är läsbara av den nuvarande användaren. Detta tar hänsyn till åtkomstkontrollistor och andra behörighetsartefakter som -perm-testet ignorerar. Detta test använder systemanropet access(2) och kan därför luras av NFS-servrar som gör UID-mappning (eller root-squashing), eftersom många system implementerar access(2) i klientens kärna och därför inte kan använda den UID-mappningsinformation som finns på servern.
  • -regex mönster: Filnamnet matchar reguljära uttrycket mönster. Detta är en matchning på hela sökvägen, inte en sökning. Till exempel, för att matcha en fil som heter ./fubar3, kan du använda det reguljära uttrycket `.*bar.` eller `.*b.*3`, men inte `f.*r3`. De reguljära uttrycken som find förstår är som standard Emacs Regular Expressions, men detta kan ändras med -regextype-alternativet.
  • -samefile namn: Filen hänvisar till samma inod som namnet. När -L är i kraft kan detta inkludera symboliska länkar.
  • -size n[cwbkMG]: Filen använder mindre än, mer än eller exakt n enheter utrymme, avrundat uppåt. Följande suffix kan användas:
    • `b` för 512-byte block (detta är standard om inget suffix används)
    • `c` för bytes
    • `w` för tvåbytesord
    • `k` för kibibytes (KiB, enheter om 1024 bytes)
    • `M` för mebibytes (MiB, enheter om 1024 * 1024 = 1048576 bytes)
    • `G` för gibibytes (GiB, enheter om 1024 * 1024 * 1024 = 1073741824 bytes)
    • Storleken är helt enkelt st_size-medlemmen i struct stat som fylls i av lstat (eller stat) systemanropet, avrundat uppåt som visas ovan. Med andra ord är det konsekvent med resultatet du får för ls -l. Tänk på att `%k` och `%b` format-specifiers för -printf hanterar glesa filer annorlunda. `b`-suffixet betecknar alltid 512-byte block och aldrig 1024-byte block, vilket är annorlunda än beteendet hos -ls.
    • Prefixen + och - betyder större än respektive mindre än, som vanligt; det vill säga en exakt storlek på n enheter matchar inte. Tänk på att storleken avrundas upp till nästa enhet. Därför är -size -1M inte ekvivalent med -size -1048576c. Den förstnämnda matchar endast tomma filer, den senare matchar filer från 0 till 1,048,575 bytes.
  • -true: Alltid sant.
  • -type c: Filen är av typen c:
    • b: block (buffrad) specialfil
    • c: tecken (obuffrad) specialfil
    • d: katalog
    • p: namngiven pipe (FIFO)
    • f: vanlig fil
    • l: symbolisk länk; detta är aldrig sant om -L-alternativet eller -follow-alternativet är i kraft, om inte den symboliska länken är trasig. Om du vill söka efter symboliska länkar när -L är i kraft, använd -xtype.
    • s: socket
    • D: dörr (Solaris)
  • För att söka efter mer än en typ samtidigt, kan du ange den kombinerade listan av typbokstäver separerade med ett komma `,` (GNU-utökning).
  • -uid n: Filens numeriska användar-ID är mindre än, större än eller exakt n.
  • -used n: Filen åtkomstes senast mindre än, mer än eller exakt n dagar efter att dess status senast ändrades.
  • -user användarnamn: Filen ägs av användaren användarnamn (numeriskt användar-ID tillåtet).
  • -wholename mönster: Se -path. Detta alternativ är mindre portabelt än -path.
  • -writable: Matchar filer som är skrivbara av den nuvarande användaren. Detta tar hänsyn till åtkomstkontrollistor och andra behörighetsartefakter som -perm-testet ignorerar. Detta test använder systemanropet access(2), och kan därför luras av NFS-servrar som gör UID-mappning (eller root-squashing), eftersom många system implementerar access(2) i klientens kärna och därför inte kan använda UID-mappningsinformationen på servern.
  • -xtype c: Samma som -type, om inte filen är en symbolisk länk. För symboliska länkar: om -H eller -P alternativet var specificerat, sant om filen är en länk till en fil av typen c; om -L-alternativet har använts, sant om c är `l`. Med andra ord, för symboliska länkar, kontrollerar -xtype typen av filen som -type inte kontrollerar. Om en symbolisk länk är trasig (för att det den pekar på inte existerar eller länken pekar på sig själv) kommer -xtype att fungera på samma sätt som -type.
  • -context mönster: (Endast SELinux) Säkerhetskontexten för filen matchar glob-mönstret.

Åtgärder

  • -delete: Tar bort filer eller kataloger; sant om borttagningen lyckades. Om borttagningen misslyckades, utfärdas ett felmeddelande och find:s utgångsstatus blir icke-noll (när det så småningom avslutas).

Varning: Glöm inte att find utvärderar kommandoraden som ett uttryck, så att sätta -delete först kommer att få find att försöka ta bort allt under de startpunkter du specificerade.

Användningen av -delete åtgärden på kommandoraden aktiverar automatiskt -depth-alternativet. Detta gör i sin tur -prune ineffektivt, och -delete åtgärden kan därför inte användas meningsfullt tillsammans med -prune.

Ofta kanske användaren vill testa en find-kommandorad med -print innan man lägger till -delete för den faktiska borttagningskörningen. För att undvika överraskande resultat är det vanligtvis bäst att komma ihåg att använda -depth uttryckligen under de tidigare testkörningarna.
-delete åtgärden kommer att misslyckas med att ta bort en katalog om den inte är tom.
Tillsammans med -ignore_readdir_race alternativet kommer find att ignorera fel från -delete åtgärden om filen har försvunnit sedan föräldrakatalogen lästes: inget felmeddelande kommer att utfärdas, utgångskoden ändras inte till icke-noll, och returvärdet för -delete åtgärden kommer att vara sant.
  • -exec kommando ;: Utför kommando; sant om 0 status returneras. Alla följande argument till find tolkas som argument till kommandot tills ett argument bestående av `;` stöter på. Strängen `{}` ersätts med det aktuella filnamnet som behandlas överallt där det förekommer i kommandots argument, inte bara i argument där det är ensam, som i vissa versioner av find. Båda dessa konstruktioner kan behöva undgås (med ett `\`) eller omges med citattecken för att skydda dem från att tolkas av skalet. Se EXEMPEL-sektionen för exempel på användningen av -exec alternativet. Det specificerade kommandot körs en gång för varje matchad fil. Kommandot körs i startkatalogen. Det finns oundvikliga säkerhetsproblem kring användningen av -exec åtgärden; du bör använda -execdir alternativet istället.
  • -exec kommando {} +: Denna variant av -exec åtgärden kör det specificerade kommandot på de valda filerna, men kommandoraden byggs genom att lägga till varje valt filnamn i slutet; det totala antalet anrop av kommandot blir mycket mindre än antalet matchade filer. Kommandoraden byggs på samma sätt som xargs bygger sina kommandorader. Endast ett instance av `{}` är tillåtet inom kommandot, och det måste visas i slutet, omedelbart före `+`; det behöver undgås (med ett `\`) eller omges med citattecken för att skydda det från tolkning av skalet. Kommandot körs i startkatalogen. Om något anrop med `+`-formen returnerar en icke-nollvärde som utgångsstatus, returnerar find en icke-noll utgångsstatus. Om find stöter på ett fel kan detta ibland orsaka en omedelbar avstängning, så vissa väntande kommandon kanske inte körs alls. Av denna anledning -exec mitt-kommando ... {} + -quit kanske inte resulterar i att mitt-kommando faktiskt körs. Denna variant av -exec returnerar alltid sant.
  • -execdir kommando ;: Utför kommandot i den underkatalog som innehåller den matchade filen, vilket inte är samma katalog som den katalog där du startade find. Som med -exec bör `{}` omges med citattecken om find anropas från ett skal. Detta är en mycket säkrare metod för att anropa kommandon, eftersom det undviker tävlingssituationer under upplösningen av sökvägarna till de matchade filerna. Som med -exec åtgärden, kommer `+`-formen av -execdir att bygga en kommandorad för att behandla mer än en matchad fil, men varje givet anrop av kommandot kommer endast att lista filer som finns i samma underkatalog. Om du använder detta alternativ måste du se till att din PATH-miljövariabel inte hänvisar till `.`; annars kan en angripare köra vilka kommandon de vill genom att lämna en lämpligt namngiven fil i en katalog där du kommer att köra -execdir. Detsamma gäller om PATH innehåller poster som är tomma eller som inte är absoluta katalognamn. Om något anrop med `+`-formen returnerar en icke-nollvärde som utgångsstatus, returnerar find en icke-noll utgångsstatus. Om find stöter på ett fel kan detta ibland orsaka en omedelbar avstängning, så vissa väntande kommandon kanske inte körs alls. Resultatet av åtgärden beror på om + eller ;-varianten används; -execdir kommando {} + returnerar alltid sant, medan -execdir kommando {} ; returnerar sant endast om kommandot returnerar 0.
  • -fls fil: Sant; som -ls men skriv till fil som -fprint. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -fprint fil: Sant; skriv det fullständiga filnamnet till fil fil. Om fil inte finns när find körs, skapas den; om den finns, trunceras den. Filnamnen /dev/stdout och /dev/stderr hanteras speciellt; de hänvisar till standardutmatning respektive standardfelutmatning. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -fprint0 fil: Sant; som -print0 men skriv till fil som -fprint. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -fprintf fil format: Sant; som -printf men skriv till fil som -fprint. Utdatafilen skapas alltid, även om predikatet aldrig matchas. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -ls: Sant; lista aktuell fil i ls -dils format på standardutmatning. Blockräkningen är av 1 KB block, om inte miljövariabeln POSIXLY_CORRECT är satt, i vilket fall 512-byte block används. Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -ok kommando ;: Liknar -exec men frågar först användaren. Om användaren accepterar, kör kommandot. Annars returnera bara falskt. Om kommandot körs, omdirigeras dess standardingång från /dev/null. Denna åtgärd kan inte specificeras tillsammans med -files0-from-alternativet.
Svaret på uppmaningen matchas mot ett par reguljära uttryck för att avgöra om det är ett jakande eller nekande svar. Detta reguljära uttryck hämtas från systemet om miljövariabeln POSIXLY_CORRECT är inställd, annars från finds meddelandeöversättningar. Om systemet inte har någon lämplig definition kommer finds egen definition att användas. I båda fallen påverkas tolkningen av det reguljära uttrycket av miljövariablerna LC_CTYPE (teckenklasser) och LC_COLLATE (teckenintervall och ekvivalensklasser).
  • -okdir kommando ;: Liknar -execdir men frågar först användaren på samma sätt som för -ok. Om användaren inte accepterar, returnera bara falskt. Om kommandot körs, omdirigeras dess standardingång från /dev/null. Denna åtgärd kan inte specificeras tillsammans med -files0-from-alternativet.
  • -print: Sant; skriv ut hela filnamnet på standardutgången, följt av en nyrad. Om du pipar utskriften från find till ett annat program och det finns den minsta möjligheten att de filer du söker efter kan innehålla en nyrad, bör du allvarligt överväga att använda -print0-alternativet istället för -print. Se avsnittet OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -print0: Sant; skriv ut hela filnamnet på standardutgången, följt av ett nolltecken (i stället för nyradstecknet som -print använder). Detta gör att filnamn som innehåller nyrader eller andra typer av mellanrum kan tolkas korrekt av program som bearbetar find:s utskrift. Detta alternativ motsvarar -0-alternativet för xargs.
  • -printf format: Sant; skriv ut format på standardutgången, tolkar `\`-undanflykter och `%`-direktiv. Fältbredd och precision kan specificeras som med printf(3) C-funktionen. Observera att många av fälten skrivs ut som %s istället för %d, och detta kan innebära att flaggor inte fungerar som du förväntar dig. Detta innebär också att `-`-flaggan fungerar (den tvingar fält att vara vänsterjusterade). Till skillnad från -print, lägger -printf inte till en nyrad i slutet av strängen. Undanflykter och direktiv är:

\a: Larmklocka. \b: Backsteg. \c: Stoppa utskriften från detta format omedelbart och spola utgången. \f: Formmatning. \n: Nyrad. \r: Vagnretur. \t: Horisontell tabb. \v: Vertikal tabb. \0: ASCII NUL. \\: Ett bokstavligt omvänt snedstreck (`\`). \NNN: Tecknet vars ASCII-kod är NNN (oktalt). Ett `\`-tecken följt av någon annan tecken behandlas som ett vanligt tecken, så båda skrivs ut.

%%: Ett bokstavligt procenttecken. %a: Filens senaste åtkomsttid i formatet som returneras av C-funktionen ctime(3). %Ak: Filens senaste åtkomsttid i formatet som specificeras av k, vilket antingen är `@` eller ett direktiv för C-funktionen strftime(3). Nedan visas en ofullständig lista över möjliga värden för k. Vänligen hänvisa till dokumentationen för strftime(3) för hela listan. Vissa av konverteringsspecifikationerna kan inte vara tillgängliga på alla system, beroende på skillnader i implementationen av strftime(3) bibliotekfunktionen.

  • @: sekunder sedan 1 januari 1970, 00:00 GMT, med bråkdel.
  • Tidsfält:
H: timme (00..23)
I: timme (01..12)
k: timme (0..23)
l: timme (1..12)
M: minut (00..59)
p: lokal AM eller PM
r: tid, 12-timmars (hh:mm:ss [AP]M)
S: Sekund (00.00 .. 61.00). Det finns en bråkdel.
T: tid, 24-timmars (hh:mm:ss.xxxxxxxxxx)
+: Datum och tid, separerade av `+`, till exempel `2004-04-28+22:22:05.0`. Detta är en GNU-utökning. Tiden ges i den aktuella tidszonen (som kan påverkas av inställningen av TZ-miljövariabeln). Sekundfältet inkluderar en bråkdel.
X: lokal tidsrepresentation (H:M:S). Sekundfältet inkluderar en bråkdel.
Z: tidszon (t.ex., EDT), eller inget om ingen tidszon är fastställbar.
  • Datumfält:
a: lokal förkortad veckodagsnamn (Sön..Lör)
A: lokal full veckodagsnamn, variabel längd (Söndag..Lördag)
b: lokal förkortad månadsnamn (Jan..Dec)
B: lokal full månadsnamn, variabel längd (Januari..December)
c: lokal datum och tid (Lör Nov 04 12:02:33 EST 1989). Formatet är samma som för ctime(3) och så för att bevara kompatibilitet med det formatet finns ingen bråkdel i sekundfältet.
d: dag i månaden (01..31)
D: datum (mm/dd/yy)
F: datum (yyyy-mm-dd)
h: samma som b
j: dag i året (001..366)
m: månad (01..12)
U: veckonummer med söndag som första dag i veckan (00..53)
w: veckodag (0..6)
W: veckonummer med måndag som första dag i veckan (00..53)
x: lokal datumrepresentation (mm/dd/yy)
y: sista två siffrorna i året (00..99)
Y: år (1970...)
%b: Den mängd diskutrymme som används för denna fil i 512-byte block. Eftersom diskutrymme allokeras i multiplar av filsystemets blockstorlek är detta vanligtvis större än %s/512, men det kan också vara mindre om filen är en sparad fil.
%Bk: Filens födelsetid, dvs dess skapandetid, i formatet specificerat av k, vilket är detsamma som för %A. Detta direktiv producerar en tom sträng om det underliggande operativsystemet eller filsystemet inte stöder födelsetider.
%c: Filens senaste statusändringstid i formatet som returneras av C-funktionen ctime(3).
%Ck: Filens senaste statusändringstid i formatet specificerat av k, vilket är detsamma som för %A.
%d: Filens djup i katalogträdet; 0 betyder att filen är en startpunkt.
%D: Enhetens nummer där filen finns (st_dev-fältet i struct stat), i decimal.
%f: Skriv ut basnamnet; filens namn med eventuella ledande kataloger borttagna (endast det sista elementet). För /, är resultatet `/`. Se EXEMPEL-sektionen för ett exempel.
%F: Typen av filsystemet som filen finns på; detta värde kan användas för -fstype.
%g: Filens gruppnamn, eller numeriskt grupp-ID om gruppen saknar namn.
%G: Filens numeriska grupp-ID.
%h: Katalognamn; de ledande katalogerna för filens namn (alla utom det sista elementet). Om filnamnet inte innehåller några snedstreck (eftersom det är i den aktuella katalogen) expanderar %h till `.`. För filer som själva är kataloger och innehåller ett snedstreck (inklusive /), expanderar %h till den tomma strängen. Se EXEMPEL-sektionen för ett exempel.
%H: Startpunkt under vilken filen hittades.
%i: Filens inode-nummer (i decimal).
%k: Mängden diskutrymme som används för denna fil i 1 KB block. Eftersom diskutrymme allokeras i multiplar av filsystemets blockstorlek är detta vanligtvis större än %s/1024, men det kan också vara mindre om filen är en sparad fil.
%l: Objekt för symbolisk länk (tom sträng om filen inte är en symbolisk länk).
%m: Filens behörighetsbitar (i oktal). Detta alternativ använder de `traditionella` siffrorna som de flesta Unix-implementationer använder, men om din specifika implementation använder en ovanlig ordning av oktala behörighetsbitar, kommer du att se en skillnad mellan det faktiska värdet på filens läge och utmatningen av %m. Normalt vill du ha en ledande nolla på detta nummer, och för att göra detta, bör du använda #-flaggan (som i, till exempel, `%#m`).
%M: Filens behörigheter (i symbolisk form, som för ls). Detta direktiv stöds i findutils 4.2.5 och senare.
%n: Antal hårda länkar till filen.
%p: Filens namn.
%P: Filens namn med namnet på startpunkten under vilken den hittades borttagen.
%s: Filens storlek i byte.
%S: Filens gleshet. Detta beräknas som (BLOCKSIZE*st_blocks / st_size). Det exakta värdet du får för en vanlig fil av en viss längd är systemberoende. Men normalt kommer sparade filer att ha värden mindre än 1.0, och filer som använder indirekta block kan ha ett värde som är större än 1.0. I allmänhet är antalet block som används av en fil filsystemberoende. Värdet som används för BLOCKSIZE är systemberoende, men är vanligtvis 512 byte. Om filstorleken är noll är det utskrivna värdet odefinierat. På system som saknar stöd för st_blocks, antas en fils gleshet vara 1.0.
%t: Filens senaste ändringstid i formatet som returneras av C-funktionen ctime(3).
%Tk: Filens senaste ändringstid i formatet specificerat av k, vilket är detsamma som för %A.
%u: Filens användarnamn, eller numeriskt användar-ID om användaren saknar namn.
%U: Filens numeriska användar-ID.
%y: Filens typ (som i ls -l), U=okänd typ (bör inte hända).
%Y: Filens typ (som %y), plus följ symboliska länkar: `L`=loop, `N`=obefintlig, `?` för alla andra fel vid bestämning av målets typ för en symbolisk länk.
%Z: (endast SELinux) filens säkerhetskontext.
%{ %[ %(: Reserverad för framtida bruk.
Ett `%`-tecken följt av något annat tecken kasseras, men det andra tecknet skrivs ut (lita inte på detta, eftersom ytterligare formattecken kan införas). Ett `%` i slutet av formatargumentet orsakar odefinierat beteende eftersom det inte finns något efterföljande tecken. I vissa lokaler kan det gömma dina nycklar, medan det i andra kan ta bort den sista sidan från romanen du läser.
%m och %d direktiven stöder #, 0 och + flaggorna, men de andra direktiven gör det inte, även om de skriver ut siffror. Numeriska direktiv som inte stöder dessa flaggor inkluderar G, U, b, D, k och n. `-`-formatflaggan stöds och ändrar justeringen av ett fält från högerjusterat (vilket är standard) till vänsterjusterat.
Se sektionen OVANLIGA FILNAMN för information om hur ovanliga tecken i filnamn hanteras.
  • -prune: Sant; om filen är en katalog, gå inte ner i den. Om -depth ges, har -prune ingen effekt. Eftersom -delete implicerar -depth, kan du inte användbart använda -prune och -delete tillsammans. Till exempel, för att hoppa över katalogen src/emacs och alla filer och kataloger under den, och skriva ut namnen på de andra hittade filerna, gör något liknande detta:
find . -path ./src/emacs -prune -o -print
  • -quit: Avsluta omedelbart (med returvärde noll om inga fel har inträffat). Detta är annorlunda än -prune eftersom -prune endast gäller innehållet i beskurna kataloger, medan -quit helt enkelt gör att find stoppar omedelbart. Inga barnprocesser kommer att lämnas körande. Alla kommandorader som har byggts av -exec ... + eller -execdir ... + körs innan programmet avslutas. Efter att -quit har körts, behandlas inga fler filer som specificerats på kommandoraden. Till exempel,
find /tmp/foo /tmp/bar -print -quit

skriver endast ut `/tmp/foo`.

  En vanlig användning av -quit är att stoppa sökningen i filsystemet när vi har hittat det vi vill ha. Till exempel, om vi vill hitta bara en enda fil kan vi göra detta:
find / -name needle -print -quit

OPERATÖRER

Listade i ordning efter minskande prioritet:

  • ( uttryck ): Tvingar prioritet. Eftersom parenteser är speciella för skalet, måste du normalt citera dem. Många av exemplen på denna manuelsida använder omvänt snedstreck för detta ändamål: `\(...\)` istället för `(...)`.
  • ! uttryck: Sant om uttryck är falskt. Detta tecken behöver också vanligtvis skyddas från tolkning av skalet.
  • -not uttryck: Samma som ! uttryck, men inte POSIX-kompatibelt.
  • uttryck1 uttryck2: Två uttryck i rad anses vara sammanlänkade med ett underförstått -a; uttryck2 utvärderas inte om uttryck1 är falskt.
  • uttryck1 -a uttryck2: Samma som uttryck1 uttryck2.
  • uttryck1 -and uttryck2: Samma som uttryck1 uttryck2, men inte POSIX-kompatibelt.
  • uttryck1 -o uttryck2: Eller; uttryck2 utvärderas inte om uttryck1 är sant.
  • uttryck1 -or uttryck2: Samma som uttryck1 -o uttryck2, men inte POSIX-kompatibelt.
  • uttryck1 , uttryck2: Lista; både uttryck1 och uttryck2 utvärderas alltid. Värdet av uttryck1 ignoreras; värdet av listan är värdet av uttryck2. Kommaoperatorn kan vara användbar för att söka efter flera olika typer av saker, men traversera filsystemets hierarki endast en gång. Åtgärden -fprintf kan användas för att lista de olika matchade objekten i flera olika utdatafiler.

Observera att -a när den anges implicit (till exempel genom att två tester visas utan en uttrycklig operator mellan dem) eller uttryckligen har högre prioritet än -o. Detta innebär att `find . -name afile -o -name bfile -print` aldrig kommer att skriva ut afile.

OVANLIGA FILNAMN

Många av find-kommandots åtgärder resulterar i utskrift av data som kontrolleras av andra användare. Detta inkluderar filnamn, storlekar, ändringstider och så vidare. Filnamn är ett potentiellt problem eftersom de kan innehålla vilket tecken som helst förutom `\0` och `/`. Ovanliga tecken i filnamn kan göra oväntade och ofta oönskade saker med din terminal (till exempel ändra inställningarna för dina funktionsknappar på vissa terminaler). Ovanliga tecken hanteras olika av olika åtgärder, som beskrivs nedan.

  • -print0, -fprint0: Skriver alltid ut det exakta filnamnet, oförändrat, även om utmatningen går till en terminal.
  • -ls, -fls: Ovanliga tecken är alltid undantagna. Blanksteg, omvänt snedstreck och dubbla citattecken skrivs ut med C-stil flykt (till exempel `\f`, `\"`). Andra ovanliga tecken skrivs ut med en oktal flykt. Andra utskrivbara tecken (för -ls och -fls är detta tecknen mellan oktal 041 och 0176) skrivs ut som de är.
  • -printf, -fprintf: Om utmatningen inte går till en terminal, skrivs den ut som den är. Annars beror resultatet på vilket direktiv som används. Direktiven %D, %F, %g, %G, %H, %Y och %y expanderar till värden som inte kontrolleras av filernas ägare och skrivs därför ut som de är. Direktiven %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u och %U har värden som kontrolleras av filernas ägare men som inte kan användas för att skicka godtyckliga data till terminalen och skrivs därför ut som de är. Direktiven %f, %h, %l, %p och %P är citerade. Denna citering utförs på samma sätt som för GNU ls. Detta är inte samma citeringsmekanism som används för -ls och -fls. Om du kan bestämma vilket format som ska användas för utdata från find, är det normalt bättre att använda `\0` som terminator än att använda nyrad, eftersom filnamn kan innehålla blanksteg och nyradstecken. Inställningen av miljövariabeln LC_CTYPE används för att avgöra vilka tecken som behöver citeras.
  • -print, -fprint: Citering hanteras på samma sätt som för -printf och -fprintf. Om du använder find i ett skript eller i en situation där de matchade filerna kan ha godtyckliga namn, bör du överväga att använda -print0 istället för -print.
  • -ok och -okdir: Åtgärderna skriver ut det aktuella filnamnet som det är. Detta kan ändras i en framtida utgåva.

STANDARDKONFORMITET

För närmaste överensstämmelse med POSIX-standarden bör du ställa in miljövariabeln POSIXLY_CORRECT. Följande alternativ specificeras i POSIX-standarden (IEEE Std 1003.1-2008, 2016 Edition):

  • -H: Detta alternativ stöds.
  • -L: Detta alternativ stöds.
  • -name: Detta alternativ stöds, men POSIX-konformiteten beror på POSIX-konformiteten hos systemets fnmatch(3) bibliotekfunktion. Från och med findutils-4.2.2 matchar skalmönster (`*`, `?` eller `[]` till exempel) ett ledande `.` eftersom IEEE PASC-tolkning 126 kräver detta. Detta är en förändring från tidigare versioner av findutils.
  • -type: Stöds. POSIX specificerar `b`, `c`, `d`, `l`, `p`, `f` och `s`. GNU find stöder också `D`, vilket representerar en Door, där operativsystemet tillhandahåller dessa. Dessutom tillåter GNU find att flera typer specificeras samtidigt i en kommaseparerad lista.
  • -ok: Stöds. Tolkningen av svaret sker enligt de `ja` och `nej` mönster som valts genom att ställa in miljövariabeln LC_MESSAGES. När miljövariabeln POSIXLY_CORRECT är inställd tas dessa mönster från systemets definition av ett positivt (ja) eller negativt (nej) svar. Se systemets dokumentation för nl_langinfo(3), särskilt YESEXPR och NOEXPR. När POSIXLY_CORRECT inte är inställt, tas mönstren istället från finds egna meddelandekatalog.
  • -newer: Stöds. Om den angivna filen är en symbolisk länk, avrefereras den alltid. Detta är en förändring från tidigare beteende, där den relevanta tiden togs från den symboliska länken; se HISTORIA-sektionen nedan.
  • -perm: Stöds. Om miljövariabeln POSIXLY_CORRECT inte är inställd, stöds vissa lägesargument (till exempel +a+x) som inte är giltiga i POSIX för bakåtkompatibilitet.
  • Andra primära tester: De primära testerna -atime, -ctime, -depth, -exec, -group, -links, -mtime, -nogroup, -nouser, -ok, -path, -print, -prune, -size, -user och -xdev stöds alla.

POSIX-standarden specificerar parenteser `(`, `)`, negation `!` och de logiska OCH/ELLER-operatörerna -a och -o.

Alla andra alternativ, predikat, uttryck och så vidare är utökningar utöver POSIX-standarden. Många av dessa utökningar är dock inte unika för GNU find.

POSIX-standarden kräver att find upptäcker loopar:

  • "Find-verktyget ska upptäcka oändliga loopar; det vill säga, när man går in i en tidigare besökt katalog som är en förfader till den sista filen som påträffades. När den upptäcker en oändlig loop, ska find skriva ett diagnostiskt meddelande till standardfel och antingen återställa sin position i hierarkin eller avsluta."

GNU find uppfyller dessa krav. Länkräkningen för kataloger som innehåller poster som är hårda länkar till en förfader är ofta lägre än de annars borde vara. Detta kan innebära att GNU find ibland optimerar bort besöket av en underkatalog som faktiskt är en länk till en förfader. Eftersom find inte faktiskt går in i en sådan underkatalog, tillåts det att undvika att avge ett diagnostiskt meddelande. Även om detta beteende kan vara något förvirrande, är det osannolikt att någon faktiskt är beroende av detta beteende. Om lövoptimeringen har stängts av med -noleaf, kommer katalogposten alltid att undersökas och ett diagnostiskt meddelande kommer att utfärdas där det är lämpligt. Symboliska länkar kan inte användas för att skapa filsystemcykler som sådana, men om -L-alternativet eller -follow-alternativet är i bruk, utfärdas ett diagnostiskt meddelande när find stöter på en loop av symboliska länkar. Precis som med loopar som innehåller hårda länkar, innebär lövoptimeringen ofta att find vet att det inte behöver kalla stat() eller chdir() på den symboliska länken, så denna diagnos är ofta inte nödvändig.

  • -d-alternativet stöds för kompatibilitet med olika BSD-system, men du bör använda det POSIX-kompatibla alternativet -depth istället.
  • Miljövariabeln POSIXLY_CORRECT påverkar inte beteendet hos -regex eller -iregex tester eftersom dessa tester inte är specificerade i POSIX-standarden.

MILJÖVARIABLER

  • LANG: Ger ett standardvärde för de internationaliseringsvariabler som är oinställda eller null.
  • LC_ALL: Om den är inställd på ett icke-tomt strängvärde, åsidosätter värdena för alla andra internationaliseringsvariabler.
  • LC_COLLATE: POSIX-standarden specificerar att denna variabel påverkar mönstermatchningen som ska användas för -name-alternativet. GNU find använder fnmatch(3) bibliotekfunktionen, så stöd för LC_COLLATE beror på systembiblioteket. Denna variabel påverkar också tolkningen av svaret på -ok; medan LC_MESSAGES-variabeln väljer det faktiska mönstret som används för att tolka svaret på -ok, kommer tolkningen av eventuella parentesuttryck i mönstret att påverkas av LC_COLLATE.
  • LC_CTYPE: Denna variabel påverkar behandlingen av teckenklasser som används i reguljära uttryck och även med -name-testet, om systemets fnmatch(3) bibliotekfunktion stöder detta. Denna variabel påverkar också tolkningen av eventuella teckenklasser i de reguljära uttryck som används för att tolka svaret på prompten som ges av -ok. Miljövariabeln LC_CTYPE påverkar också vilka tecken som anses vara outskrivbara när filnamn skrivs ut; se avsnittet OVANLIGA FILNAMN.
  • LC_MESSAGES: Bestämmer vilken lokal som ska användas för internationaliserade meddelanden. Om miljövariabeln POSIXLY_CORRECT är inställd, bestämmer denna också tolkningen av svaret på prompten som ges av -ok-åtgärden.
  • NLSPATH: Bestämmer platsen för internationaliseringsmeddelandekatalogerna.
  • PATH: Påverkar de kataloger som genomsöks för att hitta de körbara filer som anropas av -exec, -execdir, -ok och -okdir.
  • POSIXLY_CORRECT: Bestämmer blockstorleken som används av -ls och -fls. Om POSIXLY_CORRECT är inställd, är blocken enheter om 512 byte. Annars är de enheter om 1024 byte.
  * Att ställa in denna variabel stänger också av varningsmeddelanden (det vill säga implicerar -nowarn) som standard, eftersom POSIX kräver att förutom utdata för -ok, alla meddelanden som skrivs ut på stderr är diagnostik och måste resultera i ett icke-noll exitstatus.
  * När POSIXLY_CORRECT inte är inställt, behandlas -perm +zzz precis som -perm /zzz om +zzz inte är ett giltigt symboliskt läge. När POSIXLY_CORRECT är inställt, behandlas sådana konstruktioner som ett fel.
  * När POSIXLY_CORRECT är inställt, tolkas svaret på prompten som ges av -ok-åtgärden enligt systemets meddelandekatalog, i motsats till enligt finds egna meddelandeöversättningar.
  • TZ: Påverkar tidszonen som används för några av de tidsrelaterade formatdirektiven för -printf och -fprintf.

EXEMPEL

Enkel `find|xargs` metod

  • Hitta filer med namnet core i eller under katalogen /tmp och ta bort dem.
$ find /tmp -name core -type f -print | xargs /bin/rm -f
Observera att detta kommer att fungera felaktigt om det finns några filnamn som innehåller nyrader, enkla eller dubbla citattecken, eller blanksteg.

Säker `find -print0 | xargs -0` metod

  • Hitta filer med namnet core i eller under katalogen /tmp och ta bort dem, behandla filnamn på ett sådant sätt att fil- eller katalognamn som innehåller enkla eller dubbla citattecken, blanksteg eller nyrader hanteras korrekt.
$ find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f
Testet -name kommer före testet -type för att undvika att behöva kalla stat(2) på varje fil.
Observera att det fortfarande finns en risk mellan tiden find traverserar hierarkin och skriver ut de matchande filnamnen och tiden processen som utförs av xargs arbetar med den filen.

Bearbeta godtyckliga startpunkter

  • Givet att ett annat program proggy förfiltrerar och skapar en stor NUL-separerad lista över filer, bearbeta dem som startpunkter och hitta alla vanliga, tomma filer bland dem:
$ proggy | find -files0-from - -maxdepth 0 -type f -empty
Användningen av `-files0-from -` betyder att läsa namnen på startpunkterna från standardinput, dvs från röret; och -maxdepth 0 säkerställer att endast uttryckligen de posterna undersöks utan att gå ner i kataloger (om en av startpunkterna är en).

Utföra ett kommando för varje fil

  • Kör file på varje fil i eller under den aktuella katalogen.
$ find . -type f -exec file '{}' \;
Observera att klammerparenteserna är omgivna av enkla citattecken för att skydda dem från tolkning som skalsskriptinterpunktion. Semikolonet skyddas på samma sätt genom att använda ett omvänt snedstreck, även om enkla citattecken också kunde ha använts i det fallet.
I många fall kan man föredra syntaxen `-exec ... +` eller bättre syntaxen `-execdir ... +` av prestanda- och säkerhetsskäl.

Traversera filsystemet bara en gång - för 2 olika åtgärder

  • Traversera filsystemet bara en gång och lista set-user-ID filer och kataloger i /root/suid.txt och stora filer i /root/big.txt.
$ find / \
 \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
 \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)
Detta exempel använder radfortsättningssymbolen '\' på de första två raderna för att instruera skalet att fortsätta läsa kommandot på nästa rad.

Sök filer efter ålder

  • Sök efter filer i din hemmakatalog som har modifierats under de senaste tjugofyra timmarna.
$ find $HOME -mtime 0
Detta kommando fungerar så här eftersom tiden sedan varje fil senast modifierades delas med 24 timmar och eventuellt restvärde ignoreras. Detta betyder att för att matcha -mtime 0 måste en fil ha en modifiering som är mindre än 24 timmar gammal.

Sök filer efter behörigheter

  • Sök efter filer som är körbara men inte läsbara.
$ find /sbin /usr/sbin -executable \! -readable -print
  • Sök efter filer som har läs- och skrivbehörighet för deras ägare och grupp, men som andra användare kan läsa men inte skriva till.
$ find . -perm 664
Filer som uppfyller dessa kriterier men har andra behörighetsbitar inställda (till exempel om någon kan köra filen) kommer inte att matchas.
  • Sök efter filer som har läs- och skrivbehörighet för deras ägare och grupp och som andra användare kan läsa, utan att ta hänsyn till närvaron av eventuella extra behörighetsbitar (till exempel körbarhetsbiten).
$ find . -perm -664
Detta kommer att matcha en fil som har läge 0777, till exempel.
  • Sök efter filer som är skrivbara av någon (deras ägare, deras grupp eller någon annan).
$ find . -perm /222
  • Sök efter filer som är skrivbara av antingen deras ägare eller deras grupp.
$ find . -perm /220
 $ find . -perm /u+w,g+w
 $ find . -perm /u=w,g=w
Alla tre av dessa kommandon gör samma sak, men den första använder den oktala representationen av filläget, och de andra två använder den symboliska formen. Filerna behöver inte vara skrivbara av både ägaren och gruppen för att matchas; det räcker med att en av dem är det.
  • Sök efter filer som är skrivbara av både deras ägare och deras grupp.
$ find . -perm -220
 $ find . -perm -g+w,u+w
Båda dessa kommandon gör samma sak.
  • En mer avancerad sökning på behörigheter.
$ find . -perm -444 -perm /222 \! -perm /111
 $ find . -perm -a+r -perm /a+w \! -perm /a+x
Dessa två kommandon söker båda efter filer som är läsbara för alla (-perm -444 eller -perm -a+r), har åtminstone en skrivbit inställd (-perm /222 eller -perm /a+w) men inte är körbara för någon (! -perm /111 eller ! -perm /a+x respektive).

Beskärning - utesluta filer och underkataloger

  • Kopiera innehållet från /source-dir till /dest-dir, men utelämna filer och kataloger med namnet .snapshot (och allt i dem). Det utesluter också filer eller kataloger vars namn slutar på `~`, men inte deras innehåll.
$ cd /source-dir
 $ find . -name .snapshot -prune -o \( \! -name '*~' -print0 \) \
 | cpio -pmd0 /dest-dir
Konstruktionen -prune -o \( ... -print0 \) är ganska vanlig. Tanken här är att uttrycket före -prune matchar saker som ska beskäras. Men -prune-åtgärden returnerar sant, så följande -o säkerställer att den högra sidan endast utvärderas för de kataloger som inte blev beskärda (innehållet i de beskurna katalogerna besöks inte ens, så deras innehåll är irrelevant). Uttrycket på höger sida av -o är inom parentes endast för tydlighetens skull. Det betonar att -print0-åtgärden endast utförs för saker som inte hade -prune tillämpat på dem. Eftersom standard `och`-villkoret mellan tester binder starkare än -o, är detta standard ändå, men parenteserna hjälper till att visa vad som händer.
  • Givet följande katalog av projekt och deras associerade SCM administrativa kataloger, utför en effektiv sökning efter projektrötterna:
$ find repo/ \
 \( -exec test -d '{}/.svn' \; \
 -or -exec test -d '{}/.git' \; \
 -or -exec test -d '{}/CVS' \; \
 \) -print -prune
Exempel på utdata:
repo/project1/CVS
 repo/gnu/project2/.svn
 repo/gnu/project3/.svn
 repo/gnu/project3/src/.svn
 repo/project4/.git
I detta exempel förhindrar -prune onödig nedstigning i kataloger som redan har upptäckts (till exempel söker vi inte i project3/src eftersom vi redan hittade project3/.svn), men säkerställer att syskonkataloger (project2 och project3) hittas.

Andra användbara exempel

  • Sök efter flera filtyper.
$ find /tmp -type f,d,l
Sök efter filer, kataloger och symboliska länkar i katalogen /tmp genom att ange dessa typer som en komma-separerad lista (GNU-tillägg), vilket annars är ekvivalent med det längre, men mer portabla:
$ find /tmp \( -type f -o -type d -o -type l \)
  • Sök efter filer med det specifika namnet "needle" och sluta omedelbart när vi hittar den första.
$ find / -name needle -print -quit
  • Demonstrera tolkningen av formatdirektiven %f och %h i -printf-åtgärden för vissa specialfall. Här är ett exempel inklusive viss utdata.
$ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find -maxdepth 0 -printf '[%h][%f]\n'
[.][.]
[.][..]
[][/]
[][tmp]
[/tmp][TRACE]
[.][compile]
[compile/64/tests][find]

EXIT STATUS

find avslutar med status 0 om alla filer behandlas framgångsrikt, större än 0 om fel uppstår. Detta är medvetet en mycket bred beskrivning, men om returvärdet är icke-noll, bör du inte lita på korrektheten i resultaten från find.

När något fel uppstår, kan find stanna omedelbart, utan att slutföra alla specificerade åtgärder. Till exempel kan vissa startpunkter inte ha blivit undersökta eller vissa väntande programkörningar för -exec ... {} + eller -execdir ... {} + kanske inte har utförts.

HISTORIK

Ett find-program dök upp i Version 5 Unix som en del av Programmer's Workbench-projektet och skrevs av Dick Haight. Doug McIlroy's A Research UNIX Reader: Annotated Excerpts from the Programmer’s Manual, 1971-1986 ger ytterligare detaljer; du kan läsa det online på <https://www.cs.dartmouth.edu/~doug/reader.pdf>.

GNU find skrevs ursprungligen av Eric Decker, med förbättringar av David MacKenzie, Jay Plett och Tim Wood. Idén för find -print0 och xargs -0 kom från Dan Bernstein.

KOMPATIBILITET

Från och med findutils-4.2.2 matchar skalets metatecken (`*', `?' eller `[]' till exempel) som används i filnamnsmönster en inledande `.', eftersom IEEE POSIX-tolkning 126 kräver detta.

Från och med findutils-4.3.3, matchar -perm /000 nu alla filer istället för inga.

Nanosekundsupplösningstidsstämplar implementerades i findutils-4.3.3.

Från och med findutils-4.3.11, sätter -delete-åtgärden finds avslutningsstatus till ett icke-noll värde när den misslyckas. Find kommer dock inte avsluta omedelbart. Tidigare påverkades inte finds avslutningsstatus av -delete-misslyckanden.

Funktion Lades till i Förekommer också i
-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
-print0 2.0 POSIX (från Issue 8)

Syntaxen -perm +MODE togs bort i findutils-4.5.12, till förmån för -perm /MODE. Syntaxen +MODE hade varit avskriven sedan findutils-4.2.21 som släpptes 2005.

INTE BUGGAR

Operatörsprioritetsöverraskningar

Kommandot find . -name afile -o -name bfile -print kommer aldrig att skriva ut afile eftersom detta faktiskt är ekvivalent med find . -name afile -o \( -name bfile -a -print \). Kom ihåg att prioriteten för -a är högre än för -o och när det inte finns någon operatör specificerad mellan tester, antas -a.

Felmeddelandet "paths must precede expression"

$ find . -name *.c -print
      find: paths must precede expression
      find: possible unquoted pattern after predicate `-name'?

Detta händer när skalet kunde expandera mönstret *.c till mer än ett filnamn som finns i den aktuella katalogen och överföra de resulterande filnamnen i kommandoraden till find så här:

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

Det kommandot kommer naturligtvis inte att fungera, eftersom -name-predikatet tillåter exakt ett mönster som argument. Istället för att göra saker på detta sätt, bör du omsluta mönstret med citattecken eller undvika jokertecknet, vilket gör det möjligt för find att använda mönstret med jokertecken under sökningen efter filnamnsmatchning istället för filnamn expanderade av förälderskalet:

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

BUGGAR

Det finns säkerhetsproblem som är inneboende i det beteende som POSIX-standarden specificerar för find, vilket därför inte kan åtgärdas. Till exempel är -exec-åtgärden i sig osäker, och -execdir bör användas istället.

Miljövariabeln LC_COLLATE har ingen effekt på -ok-åtgärden.

RAPPORTERA BUGGAR

GNU findutils onlinehjälp: <https://www.gnu.org/software/findutils/#get-help> Rapportera eventuella översättningsfel till <https://translationproject.org/team/>

Rapportera andra problem via formuläret på GNU Savannah bug tracker: <https://savannah.gnu.org/bugs/?group=findutils> Allmänna ämnen om GNU findutils-paketet diskuteras på bug-findutils mailinglistan: <https://lists.gnu.org/mailman/listinfo/bug-findutils>

COPYRIGHT

Copyright © 1990–2024 Free Software Foundation, Inc. Licens GPLv3+: GNU GPL version 3 eller senare <https://gnu.org/licenses/gpl.html>. Detta är fri programvara: du är fri att ändra och distribuera den. Det finns INGEN GARANTI, i den utsträckning lagen tillåter.

SE ÄVEN

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)

Full dokumentation <https://www.gnu.org/software/findutils/find> eller tillgänglig lokalt via: info find

KOLOFON

Denna sida är en del av findutils (find utilities) projektet. Information om projektet finns på ⟨http://www.gnu.org/software/findutils/⟩. Om du har en bugg-rapport för denna manualsida, se ⟨https://savannah.gnu.org/bugs/?group=findutils⟩. Denna sida erhölls från projektets uppströms Git-repository ⟨git://git.savannah.gnu.org/findutils.git⟩ den 2024-06-14. (Vid den tiden var datumet för den senaste committen som hittades i repositoryt 2024-06-03.) Om du upptäcker några renderingsproblem i denna HTML-version av sidan, eller om du tror att det finns en bättre eller mer uppdaterad källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i denna KOLOFON (som inte är en del av den ursprungliga manualen), skicka ett mail till man-pages@man7.org.

Sidslut

Det här är en maskinöversättning av linux kommando manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webserver.