Find: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 1: Rad 1:
FIND  Handbok för allmänna kommandon FIND(1)
== find - Sök efter filer och kataloger ==
Kommandot `find` används för att söka efter filer och kataloger i ett filsystem baserat på olika villkor.


==== NAMN ====
=== Syntax ===
      find - sök efter filer i en kataloghierarki
find [SÖKVÄG]... [UTTRYCK]...


==== SYNOPSIS ====
=== Beskrivning ===
      hitta [-H] [-L] [-P] [-D debugopts] [-Olevel] [startpunkt...]
Kommandot `find` söker efter filer i en kataloghierarki. Du kan ange olika villkor för att filtrera sökresultaten. Detta kommando är mycket kraftfullt och flexibelt, vilket gör det möjligt att utföra komplexa sökningar och åtgärder på filer och kataloger.
      [uttryck]


==== BESKRIVNING ====
=== Alternativ ===
      Denna manualsida dokumenterar GNU-versionen av find . GNU hitta
Kommandot `find` stöder många alternativ som kan användas för att justera sökningen:
      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
* `-H` - Följ symboliska länkar som specificeras på kommandoraden.
      viktigt (till exempel om du använder det för att söka i kataloger
* `-L` - Följ alla symboliska länkar.
      som är skrivbara av andra användare), bör du läsa avsnittet `Säkerhet
* `-P` - Följ inte symboliska länkar (standardbeteende).
      Övervägandens kapitel i findutils-dokumentationen, som är
* `-D debugopts` - Skriv ut detaljerad felsökningsinformation.
      kallas Finding Files och kommer med findutils. Det dokumentet
* `-Olevel` - Optimera sökningen; nivå 0 (standard) till nivå 3.
      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 ====
=== Uttryck ===
      Alternativen -H , -L och -P styr behandlingen av symboliska
`find`-kommandot använder uttryck för att definiera sökvillkor. Här är en omfattande lista över de vanligaste uttrycken:
      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
* `-name NAMN` - Sök efter filer med ett specifikt namn. Du kan använda jokertecken för att matcha mönster, t.ex. `*.txt` för att hitta alla textfiler.
      lista. Dessa alternativ styr beteendet för hitta men är
* `-iname NAMN` - Sök efter filer med ett specifikt namn, ignorera skiftlägeskänslighet. Användbart i situationer där du inte är säker på filnamnets skiftläge.
      anges omedelbart efter det sista sökvägsnamnet. De fem "riktiga"
* `-type TYP` - Sök efter en viss typ av filer. Vanliga typer inkluderar:
      alternativen -H , -L , -P , -D och -O måste visas före den första sökvägen
  * `f` - vanliga filer
      namn, om alls. Ett dubbelstreck -- skulle teoretiskt kunna användas till
  * `d` - kataloger
      signalera att eventuella kvarvarande argument inte är alternativ, utan detta
  * `l` - symboliska länkar
      fungerar inte riktigt på grund av hur hitta bestämmer slutet på
  * `c` - teckenfiler
      följande vägargument: den gör det genom att läsa tills en
  * `b` - blockfiler
      uttrycksargument kommer (som också börjar med en `-'). Nu,
  * `s` - socketfiler
      om ett sökvägsargument skulle börja med ett "-", så skulle find behandla
  * `p` - named pipes
      det som uttrycksargument istället. Således för att säkerställa att alla
* `-perm MODE` - Sök efter filer med specifika rättigheter. MODE kan anges på olika sätt, t.ex. `755` för vanliga rättigheter eller `+x` för alla filer med exekveringsrättigheter.
      startpunkter tas som sådana, och särskilt för att förhindra det
* `-user ANVÄNDARE` - Sök efter filer som ägs av en viss användare. Du kan ange användarnamnet eller UID.
      jokerteckenmönster utökade av det anropande skalet är det inte
* `-group GRUPP` - Sök efter filer som tillhör en viss grupp. Du kan ange gruppnamnet eller GID.
      felaktigt behandlas som uttrycksargument är det i allmänhet säkrare
* `-mtime n` - Sök efter filer som ändrades för n dagar sedan. Använd `+n` för filer som ändrades för mer än n dagar sedan och `-n` för filer som ändrades för mindre än n dagar sedan.
      för att prefixa jokertecken eller tvivelaktiga sökvägsnamn med antingen `./' eller till
* `-atime n` - Sök efter filer som åtkomstades för n dagar sedan, på samma sätt som `-mtime`.
      använd absoluta sökvägsnamn som börjar med '/'. Alternativt är det
* `-ctime n` - Sök efter filer vars metadata ändrades för n dagar sedan.
      i allmänhet säker men icke-portabel att använda GNU-alternativet
* `-size n` - Sök efter filer av en viss storlek. Använd `c` för byte, `k` för kilobyte, `M` för megabyte och `G` för gigabyte.
      -filer0-från för att passera godtyckliga startpunkter för att hitta .
* `-exec KOMMANDO {} \;` - Utför ett kommando på varje fil som matchar. `{}` ersätts med filens namn. Exemplet `-exec rm {} \;` tar bort varje fil som matchar.
* `-ok KOMMANDO {} \;` - Fråga användaren innan du utför ett kommando på varje fil som matchar.
* `-delete` - Ta bort filer som matchar. Används med försiktighet eftersom det permanent tar bort filer.
* `-print` - Skriv ut sökresultaten. Detta är standardåtgärden om inget annat anges.


      -P Följ aldrig symboliska länkar. Detta är standard
=== Fler avancerade alternativ ===
              beteende. När hitta undersöker eller skriver ut information om
För mer avancerad användning kan `find` kombineras med logiska operatorer och ytterligare alternativ:
              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 information om filer ska den information som används vara
* `-and` - Kombinera flera villkor med AND-logik. Kan även anges med `-a`.
              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
* `-or` - Kombinera flera villkor med OR-logik. Kan även anges med `-o`.
              symbolisk länk eller hitta kan inte granska filen till som länken pekar ). Användning av detta alternativ innebär
* `-not` - Invertera ett villkor. Kan även anges med `!`.
              - noleaf . Om du senare använder alternativet -P , kommer -noleaf att göra det fortfarande vara i kraft.
* `-maxdepth N` - Begränsa sökningen till en maximal djupnivå på N.
Om -L är i kraft och hitta upptäcker
* `-mindepth N` - Begränsa sökningen till en minimal djupnivå N.
en symbolisk länk till en underkatalog under dess sökning, den underkatalog som pekas på av den symboliska länken kommer att vara letade.
* `-newer F` - Sök efter filer som är nyare än filen F.
* `-cnewer F` - Sök efter filer vars metadata ändrades senare än filen F.
* `-anewer F` - Sök efter filer som åtkomstades senare än filen F.
* `-empty` - Sök efter tomma filer eller kataloger.
* `-path MÖNSTER` - Sök efter filer som matchar en specifik sökväg.
* `-ipath MÖNSTER` - Sök efter filer som matchar en specifik sökväg, ignorera skiftlägeskänslighet.
* `-regex MÖNSTER` - Sök efter filer som matchar ett reguljärt uttryck.
* `-iregex MÖNSTER` - Sök efter filer som matchar ett reguljärt uttryck, ignorera skiftlägeskänslighet.


              När alternativet -L är aktivt kommer predikatet -type att göra det
=== Exempel ===
              alltid matcha mot den typ av fil som en symbolisk
Här är några praktiska exempel som visar hur du kan använda `find`-kommandot:
              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
* För att hitta alla filer med namnet `fil.txt`:
              kommandoradsargument. När hitta undersöker eller utskrifter
<code>
              information om filer ska den information som används vara
find / -name fil.txt
              hämtat från egenskaperna hos själva den symboliska länken.
</code>
              Det enda undantaget från detta beteende är när en fil
Detta kommando söker i hela filsystemet efter filer med namnet `fil.txt`.
              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
* För att hitta alla kataloger:
      de andra; den sista som visas på kommandoraden tar
<code>
      effekt. Eftersom det är standard, bör alternativet -P vara
find / -type d
      anses vara i kraft om inte antingen -H eller -L anges.
</code>
Detta kommando söker i hela filsystemet efter kataloger.


      GNU find ofta statistikfiler under bearbetningen av kommandoraden innan någon sökning har börjat. Dessa
* För att hitta alla filer större än 100 MB:
      alternativen påverkar också hur dessa argument behandlas. Specifikt finns det ett antal tester som jämför filer
<code>
      listad på kommandoraden mot en fil vi är för närvarande med tanke på. I varje fall, filen som anges på kommandot
find / -size +100M
      linje kommer att ha undersökts och några av dess egenskaper kommer att ha blivit räddad.
</code>
      Om den namngivna filen i själva verket är en symbolisk länk, och
Detta kommando söker efter alla filer större än 100 megabyte.
      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
* För att hitta filer ägda av användaren `användare`:
      listas som argumentet för -newer kommer att avreferens, och
<code>
      tidsstämpel kommer att tas från filen som den symboliska länken till
find / -user användare
      poäng. Samma hänsyn gäller för -newerXY , -anewer och
</code>
-cnewer
Detta kommando söker efter filer som ägs av användaren `användare`.


      Alternativet -follow har en liknande effekt som -L , även om det krävs
* För att hitta och ta bort alla filer med ändelsen `.tmp`:
      effekt vid den punkt där den visas (det vill säga om -L inte används
<code>
      men -follow är alla symboliska länkar som visas efter -follow på
find / -name "*.tmp" -delete
      kommandoraden kommer att avhänvisas, och de före det inte).
</code>
Detta kommando söker efter alla filer med ändelsen `.tmp` och tar bort dem.


      -D felsöker
* För att hitta alla filer ändrade inom de senaste 7 dagarna och lista dem:
              Skriv ut diagnostisk information; detta kan vara till hjälp
<code>
              diagnostisera problem med varför hitta inte gör vad du
find / -mtime -7 -print
              vilja. Listan över felsökningsalternativ ska vara komma
</code>
              separerat. Kompatibiliteten för felsökningsalternativen är inte
Detta kommando söker efter filer som har ändrats inom de senaste 7 dagarna och listar dem.
              garanteras mellan releaser av findutils. För en komplett
              lista över giltiga felsökningsalternativ, se utdata från find
              -D help . Giltiga felsökningsalternativ inkluderar


              exec Visa diagnostisk information relaterad till -exec,
* För att hitta alla filer och utföra ett kommando på varje matchande fil:
                    -execdir, -ok och -okdir
<code>
find / -name "*.log" -exec rm -f {} \;
</code>
Detta kommando söker efter alla filer med ändelsen `.log` och tar bort dem.


              opt Skriver ut diagnostisk information relaterad till optimering av uttrycksträdet; se -O
* För att hitta alla tomma filer och kataloger:
                    alternativ.
<code>
find / -empty
</code>
Detta kommando söker efter alla tomma filer och kataloger i hela filsystemet.


              rates Skriver ut en sammanfattning som anger hur ofta varje
* För att hitta alla filer med åtkomsttiden senare än en specifik fil:
                    predikat lyckades eller misslyckades.
<code>
find / -anewer referensfil
</code>
Detta kommando söker efter alla filer som har åtkomstats senare än filen `referensfil`.


              search Navigera utförligt i katalogträdet.
* För att hitta alla filer som matchar ett specifikt reguljärt uttryck:
<code>
find / -regex ".*[0-9]{4}-[0-9]{2}-[0-9]{2}.*"
</code>
Detta kommando söker efter filer vars namn matchar datumformatet `åååå-mm-dd`.


            stat Skriv ut meddelanden som filer undersöks med stat och lstat -systemanropen. Sökprogrammet försöker
* För att söka efter filer med en specifik rättighet:
            minimera sådana samtal.
<code>
find / -perm 755
</code>
Detta kommando söker efter alla filer med rättigheten `755`.


              tree Visa uttrycksträdet i dess original och optimerad form.
* För att söka i en specifik katalog och dess underkataloger:
<code>
find /home/användare/dokument -name "*.pdf"
</code>
Detta kommando söker efter alla PDF-filer i katalogen `/home/användare/dokument` och dess underkataloger.


              all Aktivera alla andra felsökningsalternativ (men help ).
=== Skillnader mellan macOS och Linux ===
Det finns några viktiga skillnader att tänka på när man använder `find`-kommandot på macOS jämfört med Linux:


              help Förklara felsökningsalternativen.
* **Standardinstallationer**: På de flesta Linux-distributioner är `find`-kommandot en del av GNU findutils, medan macOS använder BSD-versionen av `find`. Detta innebär att vissa alternativ och beteenden kan skilja sig åt.
* **Alternativ för symboliska länkar**: På Linux kan du använda `-L`, `-P`, och `-H` för att styra hur symboliska länkar hanteras. På macOS stöds också dessa alternativ, men deras beteende kan skilja sig något på grund av de underliggande skillnaderna i operativsystemens filsystemshantering.
* **-iname och -ipath**: Dessa alternativ är tillgängliga på både Linux och macOS, men eftersom macOS filsystem är skiftlägesokänsligt som standard, kan resultaten skilja sig när du använder dessa alternativ.
* **-regex och -iregex**: Reguljära uttryck hanteras på liknande sätt på både Linux och macOS, men det kan finnas små skillnader i hur specifika mönster tolkas beroende på versionen av `find` och de reguljära uttrycksbibliotek som används.
* **Prestanda och optimering**: Linux och macOS kan ha olika prestandakarakteristika beroende på hur deras filsystem och sökalgoritmer är implementerade. macOS använder HFS+ eller APFS, medan Linux vanligtvis använder ext4, Btrfs, XFS eller andra filsystem. Detta kan påverka hur snabbt `find`-kommandot utför sina sökningar.
* **Funktioner och flaggor**: Vissa GNU-specifika flaggor och funktioner kan saknas i BSD-versionen av `find` som används på macOS. Till exempel kan `-printf`-alternativet, som finns i GNU findutils, saknas i macOS `find`.


      -Olevel
Här är några exempel som visar skillnaderna:
              Möjliggör frågeoptimering. Sökprogrammet ordnar om
              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 på varje optimeringsnivå är som följer.


              0 Motsvarar optimeringsnivå 1.
* På Linux kan du använda `-printf` för att formatera utdata:
<code>
find . -name "*.txt" -printf "%p\n"
</code>
Detta fungerar inte på macOS.


              1 Detta är standardoptimeringsnivån och motsvarar det traditionella beteendet.
* På macOS kan du behöva använda en annan syntax eller rörledning för att uppnå samma resultat:
                Uttrycken ordnas om så att endast tester baseras på namnen på filer (till exempel -name och
<code>
                -regex ) utförs först.
find . -name "*.txt" -exec echo {} \;
</code>


              2 Alla -type- eller -xtype- tester utförs efter någon tester endast baserat filnamnen, men tidigare
* Användning av `-exec` macOS kan kräva att du använder `+` istället för `\;` för att effektivisera utförandet:
                    alla tester som kräver information från inoden. På många moderna versioner av Unix finns filtyper
<code>
                    returneras av readdir() och så är dessa predikat snabbare att utvärdera än predikat som behöver
find . -name "*.txt" -exec ls -l {} +
                    ange filen först. Om du använder -fstype FOO predikatet och anger ett filsystem typ FOO som
</code>
                    ä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
Det är alltid bra att konsultera `man`-sidan för `find` din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga.
                    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 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
=== Felsökning ===
              varje givet test ska lyckas. I vissa fall
Om du får ett felmeddelande när du använder `find`, kontrollera följande:
              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 ===
      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
* Att du har rättigheter att läsa de kataloger du söker i. Om du inte har tillräckliga rättigheter kan du få åtkomstfel.
              av någon egenskap hos en fil som vi överväger. Den -tomma
* Att syntaxen för ditt uttryck är korrekt. Kontrollera att du använder korrekta alternativ och parametrar.
              test till exempel är sant endast när den aktuella filen är det
* Att du inte använder för många symboliska länkar utan att följa dem, om det är nödvändigt.
              tömma.


      Handlingar
=== Se även ===
              Åtgärder har biverkningar (som att skriva ut något på
* [[grep]] - Sök efter mönster i filer.
              standardutgången) och returnerar antingen sant eller falskt,
* [[locate]] - Hitta filer snabbt med en databas.
              vanligtvis baserat på om de är framgångsrika eller inte. De
* [[xargs]] - Bygg och kör kommandon från standardinmatning.
              -print action till exempel skriver ut namnet på den aktuella
* [[chmod]] - Ändra filrättigheter.
              fil på standardutgången.
* [[chown]] - Ändra ägande av filer och kataloger.


      Globala alternativ
=== Källor ===
              Globala alternativ påverkar driften av tester och åtgärder
* [https://man7.org/linux/man-pages/man1/find.1.html find(1) man-sida]
              som anges på någon del av kommandoraden. Globala alternativ
* [https://ss64.com/osx/find.html macOS find manual]
              returnerar alltid sant. Alternativet -depth gör till exempel
              att hitta går igenom filsystemet i en djup-första ordning.


      Positionsalternativ
[[Kategori:Linuxkommandon]]
              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
              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
      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
        -depth ).
 
  POSITIONELLA ALTERNATIV
      Positionsalternativ returnerar alltid sant. De påverkar bara tester
      inträffar senare på kommandoraden.
 
      -dagens start
              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
              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
              Ändrar syntaxen för reguljära uttryck som förstås av -regex-
              och -iregex -test som inträffar senare på 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
              Slå på eller av varningsmeddelanden. Dessa varningar gäller
              endast till kommandoradens användning, inte till några villkor som
              find kan stöta på 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 ==
      Globala alternativ returnerar alltid sant. Globala alternativ träder i kraft
      även för tester som inträffar tidigare på 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å är inte samma typ av alternativ som -L , till exempel.
 
      -d En synonym för -djup, för kompatibilitet med FreeBSD,
              NetBSD, MacOS X och OpenBSD.
 
      -djup Bearbeta varje katalogs innehåll före katalogen
              sig. Åtgärden -delete innebär också -depth .
 
      -files0-from file
              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 på 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 på
              kommandoraden utesluter varandra och är det därför inte
              tillåtet samtidigt.
 
              Filargumentet är obligatoriskt . Man kan använda
              -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
              NUL-tecken. Två på varandra följande NUL-tecken, dvs
              startpunkt med ett noll-längd filnamn är inte tillåtet
              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
              någon startpunkt och kommer därför att avslutas omedelbart
              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
              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
              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.
 
      -help,--help
              Skriv ut en sammanfattning av kommandoradens användning av hitta och
              utgång.
 
      -ignore_readdir_race
              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 på 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
              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
              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
              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
              alternativt namn för -xdev , för kompatibilitet med vissa
              andra versioner av hitta .
 
      -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 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
              Skriv ut sökversionsnumret och avsluta.
 
      -xdev Gå inte ner i kataloger på andra filsystem.
 
== TEST ==
Vissa tester, till exempel -newerXY och -samefile , tillåter jämförelse mellan den akt som för närvarande granskas och någon referensfil anges på kommandoraden. När dessa tester används,tolkningen av referensfilen bestäms av alternativen -H , -L och -P och alla tidigare -följer , men referensfilen är endast undersökt en gång, vid den tidpunkt då kommandoraden tolkas. Om referensfilen kan inte granskas (till exempel misslyckas stat(2) systemanropet för den), ett felmeddelande utfärdas och hitta avslutas med en status som inte är noll.
 
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 .
 
Tester som stöds:
 
===== -amin n =====
Filen användes senast mindre än, mer än eller exakt n minuter sedan.
 
===== -anewer referens =====
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.
 
===== -atime n =====
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åkdeldelen ignoreras, så för att matcha -atime +1 måste en fil ha åtkomst för minst två dagar sedan.
 
===== -cmin n =====
Filens status ändrades senast mindre än, mer än eller exakt n minuter sedan.
 
===== -Cnewer referens =====
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 =====
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.
 
===== -executable =====
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.
 
-false Alltid falskt.
 
-fstype typ
              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
              n .
 
      -group gname
              Filen tillhör gruppen gname (numeriskt grupp-ID tillåtet).
 
      -ilname pattern
              Som -lname , men matchningen är skiftlägesokänslig. Om alternativet -L
              eller -follow är aktivt, testar detta
              returnerar false om inte den symboliska länken är bruten.
 
      -iname mönster
              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
              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
              Som -path . men matchen är skiftlägesokänslig.
 
      -iregex -mönster
              Som -regex , men matchningen är skiftlägesokänslig.
 
      -helnamnsmönster _
              Se -ipath. Detta alternativ är mindre bärbart än
              -ipath .
 
      -länkar n
              Filen har mindre än, mer än eller exakt n hårda länkar.
 
      -lname mönster
              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
              Filens data ändrades senast mindre än, mer än eller exakt n minuter sedan.
 
      -mtid n
              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.
 
-name pattern
              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
              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
              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
              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
              Födelsetiden för filreferensen c
              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
              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
              Ingen grupp motsvarar filens numeriska grupp-ID.
 
      -nöser
              Ingen användare motsvarar filens numeriska användar-ID.
 
      -path pattern
              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
              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
              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
              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
              Detta stöds inte längre (och har fasats ut sedan dess
              2005). Använd -perm / mode istället.
 
      -läsbar
              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
              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
              Filen refererar till samma inode som name . När -L är inne
              effekt kan detta inkludera symboliska länkar.
 
      -storlek n [cwbkMG]
              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
                    suffix används)
 
              `c' för bytes
 
              "w" för två-byte ord
 
              "k" för kibibyte (KiB, enheter på 1024 byte)
 
              "M" för mebibyte (MiB, enheter på 1024 * 1024 = 1048576
                    byte)
 
              `G' för gibibyte (GiB, enheter på 1024 * 1024 * 1024 =
                    1073741824 byte)
 
              Storleken är helt enkelt st_size-medlemmen i strukturstatistiken
              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,
              som vanligt; dvs en exakt storlek på n enheter matchar inte.
              Tänk på att storleken avrundas uppåt till nästa enhet.
              Därför motsvarar -storlek -1M inte -storlek -1048576c .
              Den förra matchar bara tomma filer, den senare matchar
              filer från 0 till 1 048 575 byte.
 
      -sant Alltid sant.
 
      -typ c
              Filen är av typ c :
 
              b block (buffrad) special
 
              c-tecken (obuffrad) special
 
              d katalog
 
              p named pipe (FIFO)
 
              f vanlig fil
 
              l symbolisk länk; detta är aldrig sant om alternativet -L
                    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 dörr (Solaris)
 
              För att söka efter mer än en typ på en gång kan du tillhandahålla
              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
              n .
 
      -used n
              Filen användes senast mindre än, mer än eller exakt n
              dagar efter att dess status senast ändrades.
 
      -user uname
              Filen ägs av användaren uname (numeriskt användar-ID tillåtet).
 
      -helnamnsmönster
              Se -sökväg . Detta alternativ är mindre portabelt än -path .
 
      -skrivbar
              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
              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 _
              (endast SELinux) Säkerhetskontexten för filen matchar glob
              mönster .
 
  HANDLINGAR
      -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
              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
              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
              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
              det är tomt.
 
              Tillsammans med alternativet -ignore_readdir_race , find will
              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 ;
              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 {} +
              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 ;
 
      -execdir kommandot {} +
              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
              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
              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
              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
              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
              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 ;
              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
              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 ;
              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,
              följt av en nyrad. Om du rör utgången av
              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
              Sann; skriv ut hela filnamnet på standardutdata,
              följt av ett nolltecken (istället för nyraden
              tecken som -print använder). Detta tillåter filnamn som
              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
              Sant; utskriftsformat på standardutgången, tolkning
              `\' 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.
 
              \b Backsteg.
 
              \c Sluta omedelbart att skriva ut från detta format och
                    spola utgången.
 
              \f Form feed.
 
              \n Ny linje.
 
              Vagnretur.
 
              \t Horisontell flik.
 
              \v Vertikal flik.
 
              \0 ASCII NUL.
 
              \\ Ett bokstavligt snedstreck (`\').
 
              \NNN Det tecken vars ASCII-kod är NNN (oktal).
 
              Ett `\'-tecken följt av ett annat tecken behandlas
              som ett vanligt tecken, så de båda skrivs ut.
 
              %% Ett bokstavligt procenttecken.
 
              %a Filens senaste åtkomsttid i formatet som returneras avfunktionen
                    C ctime(3) .
 
              %A k    Filens senaste åtkomsttid i formatet som anges av
                      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
                            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-lokalens AM eller PM
 
                    r tid, 12 timmar (hh:mm:ss [AP]M)
 
                    S Andra (00.00 ... 61.00). Det finns en
                            bråkdel.
 
                    T tid, 24 timmar (hh:mm:ss.xxxxxxxxxx)
 
                    + Datum och tid, avgränsade med "+", till exempel
                            "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
                            sekunders fält innehåller en bråkdel.
 
                    Z tidszon (t.ex. EDT), eller ingenting om ingen tid
                            zonen är bestämbar
 
                    Datumfält:
 
                    en lokals förkortade veckodagsnamn (sön..lör)
 
                    En lokals fullständiga veckodagsnamn, variabel längd
                            (Söndag lördag)
 
                    b-lokalens förkortade månadsnamn (jan..dec)
 
                    B-lokalens fullständiga månadsnamn, variabel längd
                            (januari..december)
 
                    c lokalens datum och tid (lör 4 november 12:02:33
                            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)
 
                    D-datum (mm/dd/åå)
 
                    F-datum (åååå-mm-dd)
 
                    h samma som b
 
                    j dag på året (001..366)
 
                    m månad (01..12)
 
                    U veckonummer år med söndag som första dag
                            veckan (00..53)
 
                    w veckodag (0..6)
 
                    W veckonummer år med måndag som första dag
                            veckan (00..53)
 
                    x-lokalens datumrepresentation (mm/dd/åå)
 
                    y sista två siffror i år (00..99)
 
                    Y år (1970...)
 
              %b Mängden diskutrymme som används för den här filen
                    512-byte block. Eftersom diskutrymme är allokerat i
                    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
                    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
                    C ctime(3) .
 
              %C k    Filens senaste statusändringstid i formatet
                    specificeras av k , vilket är samma som för %A.
 
              %d Filens djup i katalogträdet; 0 betyder
                    filen är en utgångspunkt.
 
              %D Det enhetsnummer som filen finns på (den
                    st_dev-fältet för struct stat), i decimal.
 
              %f Skriv ut basnamnet; filens namn med någon
                    ledande kataloger borttagna (endast de sista
                    element). För / är resultatet `/'. Se
                      avsnittet EXEMPEL för ett exempel.
 
              %F Typ av filsystem filen är på; detta värde
                    kan användas för -fstype.
 
              %g Filens gruppnamn, eller numeriskt grupp-ID om gruppen
                    har inget namn.
 
              %G Filens numeriska grupp-ID.
 
              %h Dirname; de ledande katalogerna för filens namn
                    (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.
 
              %i Filens inodnummer (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 den kan också vara mindre om
                    filen är en gles fil.
 
              %l Objekt med symbolisk länk (tom sträng om filen är
                    inte en symbolisk länk).
 
              %m Filens behörighetsbitar (i oktal). Detta alternativ
                    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 direktiv stöds i findutils 4.2.5 och
                    senare.
 
              %n Antal hårda länkar till fil.
 
              %p Filens namn.
 
              %P Filens namn med namnet på startpunkten
                    under vilken den hittades borttagen.
 
              %s Filstorlek 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ä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
                    C ctime(3) .
 
              %T k    Filens senaste ändringstid i formatet
                    specificeras av k , vilket är samma som för %A.
 
              %u Filens användarnamn, eller numeriskt användar-ID om användaren
                    har inget namn.
 
              %U Filens numeriska användar-ID.
 
              %y Filtyp (som i ls -l ), U=okänd typ
                    (borde inte hända)
 
              %Y Filtyp (som %y), plus följ symboliska länkar:
                    `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.
 
              %{ %[ %(
                    Reserverad för framtida bruk.
 
              Ett `%'-tecken följt av ett annat tecken är
              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
              de andra direktiven gör det inte, även om de trycker 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änsterjusterad.
 
              Se avsnittet OVENLIGA FILNAMN för information om
              hur ovanliga tecken i filnamn hanteras.
 
      -beskär Sant; om filen är en katalog, gå inte ner i den.
              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 på 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
              inträffade). Detta skiljer sig från -prune eftersom -prune
              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
      Listad i fallande prioritetsordning:
 
      ( expr )
              Tvinga företräde. Eftersom parenteser är speciella för
              shell, du kommer normalt att behöva citera dem. Många av
              exempel på 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
              behöver skydd mot tolkning av skalet.
 
      -inte expr
              Samma som ! expr , men inte POSIX-kompatibel.
 
      expr1 expr2
              Två uttryck i rad anses vara sammanfogade med en
              underförstådd -a ; expr2 utvärderas inte om expr1 är falskt.
 
      expr1 -a expr2
              Samma som expr1 expr2 .
 
      expr1 -och expr2
              Samma som expr1 expr2 , men inte POSIX-kompatibel.
 
      expr1 -o expr2
              Eller; expr2 utvärderas inte om expr1 är sant.
 
      expr1 -eller expr2
              Samma som expr1  -o expr2 , men inte POSIX-kompatibel.
 
      expr1 , expr2
              Lista; både expr1 och expr2 utvärderas alltid. De
              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å
      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
              Skriv alltid ut det exakta filnamnet, oförändrat, även om
              utgången går till en terminal.
 
      -ls, -fls
              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
              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
              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.
      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.
 
      -L      Det här alternativet stöds.
 
      -name  Det här alternativet stöds, men POSIX-överensstämmelse beror på
              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'
              och `s'. GNU find stöder också `D', som representerar en dörr,
              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
              "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
              är alltid bortskämd. Detta är en förändring från tidigare
              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
              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
              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 `!'
      och de logiska OCH/ELLER-operatorerna -a och -o .
 
      Alla andra alternativ, predikat, uttryck och så vidare är
      tillägg utöver POSIX-standarden. Många av dessa tillägg
      är dock inte unika för GNU-fynd.
 
      POSIX-standarden kräver att hitta detekterar loopar:
 
              Sökverktyget ska detektera oändliga loopar ; det är,
              gå in i en tidigare besökt katalog som är en
              förfader till den senaste filen som påträffades. När den upptäcker en
              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å
      kataloger som innehåller poster som är hårda länkar till en
      förfader kommer ofta att vara lägre än de annars borde vara. Detta
      kan innebära att GNU-fynd ibland optimerar bort besöket
      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
      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 -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
              alla andra internationaliseringsvariabler.
 
      LC_COLLATE
              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 på 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
              Denna variabel påverkar behandlingen av karaktärsklasser
              används i reguljära uttryck och även med -name- testet,
              om systemets biblioteksfunktion fnmatch(3) stöder detta.
              Denna variabel påverkar också tolkningen av ev
              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
              Bestämmer den plats som ska användas för internationaliserad
              meddelanden. Om miljövariabeln POSIXLY_CORRECT är
              uppsättning, detta avgör också tolkningen av
              svar på uppmaningen från -ok- åtgärden.
 
      NLSPATH
              Bestämmer platsen för internationaliseringen
              meddelandekataloger.
 
      PATH Påverkar katalogerna som söks för att hitta
              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ä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
              (det vill säga antyder -nowarn ) som standard, eftersom POSIX
              kräver att förutom utdata för -ok , alla meddelanden
              tryckt på stderr är diagnostik och måste resultera i en
              utgångsstatus som inte är noll.
 
              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 kommer svaret på prompten
              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.)
[[Skillnaden mellan BSD och GNU versionen av kommandot find]]

Versionen från 26 maj 2024 kl. 06.43

find - Sök efter filer och kataloger

Kommandot `find` används för att söka efter filer och kataloger i ett filsystem baserat på olika villkor.

Syntax

find [SÖKVÄG]... [UTTRYCK]...

Beskrivning

Kommandot `find` söker efter filer i en kataloghierarki. Du kan ange olika villkor för att filtrera sökresultaten. Detta kommando är mycket kraftfullt och flexibelt, vilket gör det möjligt att utföra komplexa sökningar och åtgärder på filer och kataloger.

Alternativ

Kommandot `find` stöder många alternativ som kan användas för att justera sökningen:

  • `-H` - Följ symboliska länkar som specificeras på kommandoraden.
  • `-L` - Följ alla symboliska länkar.
  • `-P` - Följ inte symboliska länkar (standardbeteende).
  • `-D debugopts` - Skriv ut detaljerad felsökningsinformation.
  • `-Olevel` - Optimera sökningen; nivå 0 (standard) till nivå 3.

Uttryck

`find`-kommandot använder uttryck för att definiera sökvillkor. Här är en omfattande lista över de vanligaste uttrycken:

  • `-name NAMN` - Sök efter filer med ett specifikt namn. Du kan använda jokertecken för att matcha mönster, t.ex. `*.txt` för att hitta alla textfiler.
  • `-iname NAMN` - Sök efter filer med ett specifikt namn, ignorera skiftlägeskänslighet. Användbart i situationer där du inte är säker på filnamnets skiftläge.
  • `-type TYP` - Sök efter en viss typ av filer. Vanliga typer inkluderar:
 * `f` - vanliga filer
 * `d` - kataloger
 * `l` - symboliska länkar
 * `c` - teckenfiler
 * `b` - blockfiler
 * `s` - socketfiler
 * `p` - named pipes
  • `-perm MODE` - Sök efter filer med specifika rättigheter. MODE kan anges på olika sätt, t.ex. `755` för vanliga rättigheter eller `+x` för alla filer med exekveringsrättigheter.
  • `-user ANVÄNDARE` - Sök efter filer som ägs av en viss användare. Du kan ange användarnamnet eller UID.
  • `-group GRUPP` - Sök efter filer som tillhör en viss grupp. Du kan ange gruppnamnet eller GID.
  • `-mtime n` - Sök efter filer som ändrades för n dagar sedan. Använd `+n` för filer som ändrades för mer än n dagar sedan och `-n` för filer som ändrades för mindre än n dagar sedan.
  • `-atime n` - Sök efter filer som åtkomstades för n dagar sedan, på samma sätt som `-mtime`.
  • `-ctime n` - Sök efter filer vars metadata ändrades för n dagar sedan.
  • `-size n` - Sök efter filer av en viss storlek. Använd `c` för byte, `k` för kilobyte, `M` för megabyte och `G` för gigabyte.
  • `-exec KOMMANDO {} \;` - Utför ett kommando på varje fil som matchar. `{}` ersätts med filens namn. Exemplet `-exec rm {} \;` tar bort varje fil som matchar.
  • `-ok KOMMANDO {} \;` - Fråga användaren innan du utför ett kommando på varje fil som matchar.
  • `-delete` - Ta bort filer som matchar. Används med försiktighet eftersom det permanent tar bort filer.
  • `-print` - Skriv ut sökresultaten. Detta är standardåtgärden om inget annat anges.

Fler avancerade alternativ

För mer avancerad användning kan `find` kombineras med logiska operatorer och ytterligare alternativ:

  • `-and` - Kombinera flera villkor med AND-logik. Kan även anges med `-a`.
  • `-or` - Kombinera flera villkor med OR-logik. Kan även anges med `-o`.
  • `-not` - Invertera ett villkor. Kan även anges med `!`.
  • `-maxdepth N` - Begränsa sökningen till en maximal djupnivå på N.
  • `-mindepth N` - Begränsa sökningen till en minimal djupnivå på N.
  • `-newer F` - Sök efter filer som är nyare än filen F.
  • `-cnewer F` - Sök efter filer vars metadata ändrades senare än filen F.
  • `-anewer F` - Sök efter filer som åtkomstades senare än filen F.
  • `-empty` - Sök efter tomma filer eller kataloger.
  • `-path MÖNSTER` - Sök efter filer som matchar en specifik sökväg.
  • `-ipath MÖNSTER` - Sök efter filer som matchar en specifik sökväg, ignorera skiftlägeskänslighet.
  • `-regex MÖNSTER` - Sök efter filer som matchar ett reguljärt uttryck.
  • `-iregex MÖNSTER` - Sök efter filer som matchar ett reguljärt uttryck, ignorera skiftlägeskänslighet.

Exempel

Här är några praktiska exempel som visar hur du kan använda `find`-kommandot:

  • För att hitta alla filer med namnet `fil.txt`:

find / -name fil.txt

Detta kommando söker i hela filsystemet efter filer med namnet `fil.txt`.
  • För att hitta alla kataloger:

find / -type d

Detta kommando söker i hela filsystemet efter kataloger.
  • För att hitta alla filer större än 100 MB:

find / -size +100M

Detta kommando söker efter alla filer större än 100 megabyte.
  • För att hitta filer ägda av användaren `användare`:

find / -user användare

Detta kommando söker efter filer som ägs av användaren `användare`.
  • För att hitta och ta bort alla filer med ändelsen `.tmp`:

find / -name "*.tmp" -delete

Detta kommando söker efter alla filer med ändelsen `.tmp` och tar bort dem.
  • För att hitta alla filer ändrade inom de senaste 7 dagarna och lista dem:

find / -mtime -7 -print

Detta kommando söker efter filer som har ändrats inom de senaste 7 dagarna och listar dem.
  • För att hitta alla filer och utföra ett kommando på varje matchande fil:

find / -name "*.log" -exec rm -f {} \;

Detta kommando söker efter alla filer med ändelsen `.log` och tar bort dem.
  • För att hitta alla tomma filer och kataloger:

find / -empty

Detta kommando söker efter alla tomma filer och kataloger i hela filsystemet.
  • För att hitta alla filer med åtkomsttiden senare än en specifik fil:

find / -anewer referensfil

Detta kommando söker efter alla filer som har åtkomstats senare än filen `referensfil`.
  • För att hitta alla filer som matchar ett specifikt reguljärt uttryck:

find / -regex ".*[0-9]{4}-[0-9]{2}-[0-9]{2}.*"

Detta kommando söker efter filer vars namn matchar datumformatet `åååå-mm-dd`.
  • För att söka efter filer med en specifik rättighet:

find / -perm 755

Detta kommando söker efter alla filer med rättigheten `755`.
  • För att söka i en specifik katalog och dess underkataloger:

find /home/användare/dokument -name "*.pdf"

Detta kommando söker efter alla PDF-filer i katalogen `/home/användare/dokument` och dess underkataloger.

Skillnader mellan macOS och Linux

Det finns några viktiga skillnader att tänka på när man använder `find`-kommandot på macOS jämfört med Linux:

  • **Standardinstallationer**: På de flesta Linux-distributioner är `find`-kommandot en del av GNU findutils, medan macOS använder BSD-versionen av `find`. Detta innebär att vissa alternativ och beteenden kan skilja sig åt.
  • **Alternativ för symboliska länkar**: På Linux kan du använda `-L`, `-P`, och `-H` för att styra hur symboliska länkar hanteras. På macOS stöds också dessa alternativ, men deras beteende kan skilja sig något på grund av de underliggande skillnaderna i operativsystemens filsystemshantering.
  • **-iname och -ipath**: Dessa alternativ är tillgängliga på både Linux och macOS, men eftersom macOS filsystem är skiftlägesokänsligt som standard, kan resultaten skilja sig när du använder dessa alternativ.
  • **-regex och -iregex**: Reguljära uttryck hanteras på liknande sätt på både Linux och macOS, men det kan finnas små skillnader i hur specifika mönster tolkas beroende på versionen av `find` och de reguljära uttrycksbibliotek som används.
  • **Prestanda och optimering**: Linux och macOS kan ha olika prestandakarakteristika beroende på hur deras filsystem och sökalgoritmer är implementerade. macOS använder HFS+ eller APFS, medan Linux vanligtvis använder ext4, Btrfs, XFS eller andra filsystem. Detta kan påverka hur snabbt `find`-kommandot utför sina sökningar.
  • **Funktioner och flaggor**: Vissa GNU-specifika flaggor och funktioner kan saknas i BSD-versionen av `find` som används på macOS. Till exempel kan `-printf`-alternativet, som finns i GNU findutils, saknas i macOS `find`.

Här är några exempel som visar skillnaderna:

  • På Linux kan du använda `-printf` för att formatera utdata:

find . -name "*.txt" -printf "%p\n"

Detta fungerar inte på macOS.
  • På macOS kan du behöva använda en annan syntax eller rörledning för att uppnå samma resultat:

find . -name "*.txt" -exec echo {} \;

  • Användning av `-exec` på macOS kan kräva att du använder `+` istället för `\;` för att effektivisera utförandet:

find . -name "*.txt" -exec ls -l {} +

Det är alltid bra att konsultera `man`-sidan för `find` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga.

Felsökning

Om du får ett felmeddelande när du använder `find`, kontrollera följande:

  • Att du har rättigheter att läsa de kataloger du söker i. Om du inte har tillräckliga rättigheter kan du få åtkomstfel.
  • Att syntaxen för ditt uttryck är korrekt. Kontrollera att du använder korrekta alternativ och parametrar.
  • Att du inte använder för många symboliska länkar utan att följa dem, om det är nödvändigt.

Se även

  • grep - Sök efter mönster i filer.
  • locate - Hitta filer snabbt med en databas.
  • xargs - Bygg och kör kommandon från standardinmatning.
  • chmod - Ändra filrättigheter.
  • chown - Ändra ägande av filer och kataloger.

Källor