Find: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Rad 77: Rad 77:


= GLOBALA ALTERNATIV =
= GLOBALA ALTERNATIV =
== 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 den aktuella filen är nyare än tidsstämpeln Y för referensfilen. Bokstäverna X och Y kan vara någon av följande bokstäver:
*** a: Åtkomsttid för referensfilen
*** B: Födelse


= Sidslut =
= Sidslut =

Versionen från 1 september 2024 kl. 18.58

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

  • 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 den aktuella filen är nyare än tidsstämpeln Y för referensfilen. Bokstäverna X och Y kan vara någon av följande bokstäver:
      • a: Åtkomsttid för referensfilen
      • B: Födelse

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.