find command unix
Introduktion till Find Command i Unix: Sök efter filer och kataloger med Unix Find File Command
Unix find-kommandot är ett kraftfullt verktyg för att söka efter filer eller kataloger.
Sökningen kan baseras på olika kriterier och matchande filer kan köras genom definierade åtgärder. Det här kommandot sjunker rekurivt ned i filhierarkin för varje angiven sökväg.
=> Klicka här för Komplett Unix-handledningsserie
Vad du kommer att lära dig:
grep-kommando i unix shell-skript
Hitta kommando i Unix
Syntax:
find (options) (paths) (expression)
Alternativen för detta kommando används för att ange hur symboliska länkar ska behandlas. Detta följs av en uppsättning sökvägar att söka i. Om inga sökvägar anges, används den aktuella katalogen. Det givna uttrycket körs sedan på var och en av filerna som finns i sökvägarna.
Uttrycket består av en serie alternativ, tester och åtgärder, var och en returnerar en boolean. Uttrycket utvärderas från vänster till höger för varje fil i sökvägen tills resultatet bestäms, dvs. resultatet är känt för att vara sant eller falskt.
- Alternativuttryck används för att begränsa sökoperationen och alltid returnera true.
-
- -depth: bearbeta kataloginnehållet innan du behandlar själva katalogen.
- -maxdepth: maxnivåerna under de angivna sökvägarna för att komma ner för en matchning.
- -mindepth: min-nivåerna bortom de angivna banorna att sjunka innan matchning.
-
- Testuttryck används för att utvärdera specifika egenskaper hos filerna och returnera sant eller falskt därefter. (Varhelst ett räkning 'n' används: utan något prefix är matchningen det exakta värdet av n; med ett '+' prefix är matchningen för värden större än n; och med ett '-' prefix är matchningen för värden mindre än n.)
-
- -tid n: Returnerar sant om filen öppnades för n dagar sedan.
- -tid n: Returnerar sant om filens status ändrades för n dagar sedan.
- -mtime n: Returnerar sant om filens innehåll ändrades för n dagar sedan.
- -namnmönster: Returnerar sant om filens namn matchar det angivna skalmönstret.
- -iname mönster: Returnerar true om filens namn matchar det angivna skalmönstret. Matchningen här är skiftlägeskänslig.
- -stegsmönster: Returnerar sant om filens namn med sökvägen matchar skalmönstret.
- -regex mönster: Returnerar sant om filens namn med sökvägen matchar det reguljära uttrycket.
- -storlek n: Returnerar sant om filstorleken är n block.
- -perm - mode: Returnerar true om alla behörighetsbitar för läge är inställda för filen.
- -typ c: Returnerar sant om filen är av typ c (t.ex. 'b' för blockeringsenhetsfil, 'd' för katalog etc.).
- -användarnamn: Returnerar sant om filen ägs av användarnamnet 'namn'.
-
- Handlingsuttrycken används för att definiera åtgärder som har biverkningar och kan returnera sant eller falskt. Om inte åtgärder anges, utförs '-print' -åtgärden för alla matchande filer.
-
- -radera: Ta bort den matchade filen och returnera true om den lyckades.
- -exec-kommando: Kör det givna kommandot för varje matchande fil och returnera true om returvärdet är 0.
- -ok-kommando: Som 'exec' -uttrycket, men bekräftar med användaren först.
- -ls: Lista matchande fil enligt formatet 'ls -dils'.
- -print: Skriv ut namnet på den matchande filen.
- -prune: Om filen är en katalog, gå inte ner i den och returnera true.
-
- Uttrycket utvärderas från vänster till höger och sätts ihop med följande operatorer.
-
- ( expr ) : Används för att tvinga företräde.
- ! expr: Används för att negera ett uttryck.
- expr1 -till expr2: Resultatet är ett 'och' av de två uttrycken. Expr2 utvärderas bara av expr1 är sant.
- expr1 expr2: 'och' operatören är implicit i detta fall.
- expr1 -eller expr2: Resultatet är ett 'eller' av de två uttrycken. Expr2 utvärderas endast av expr1 är falskt.
-
Exempel
Lista alla filer som finns i den aktuella katalogen och dess hierarki
$ find.
Lista alla filer som finns i den aktuella hierarkin och alla hierarkierna nedan / home / xyz
$ find. /home/XYZ
Sök efter en fil med namnet abc i den aktuella katalogen och dess hierarki
$ find ./ -name abc
Sök efter en katalog med namnet xyz i den aktuella katalogen och dess hierarki
$ find ./ -type d -name xyz
Sök efter en fil med namnet abc.txt under den aktuella katalogen och uppmana användaren att ta bort varje matchning.
Observera att strängen '{}' ersätts med det faktiska filnamnet medan den körs och att ';' sträng används för att avsluta kommandot som ska köras.
$ find ./ -name abc.txt -exec rm -i {} ;
Sök efter filer som har ändrats under de senaste sju dagarna under den aktuella katalogen
$ find ./ -mtime -7
Sök efter filer som har alla behörigheter inställda i den aktuella hierarkin
$ find ./ -perm 777
Slutsats
Kort sagt, Find Command in Unix returnerar alla filer under den nuvarande arbetskatalogen. Vidare tillåter kommandot find användaren att ange en åtgärd som ska vidtas för varje matchad fil.
=> Klicka här för Komplett Unix-handledningsserie
Rekommenderad läsning
- Klipp kommandot i Unix med exempel
- Ls Command i Unix med exempel
- Filmanipulation i Unix: Översikt över Unix File System
- Unix Cat Command Syntax, alternativ med exempel
- Grep Command i Unix med enkla exempel
- Unix Sorteringskommando med syntax, alternativ och exempel
- Tjärkommando i Unix för att skapa säkerhetskopior (exempel)
- Hur man jämför två filer i Unix: kommandon för filjämförelse