find command unix
Introduktion til Find kommando i Unix: Søg efter filer og mapper med Unix Find File Command
Unix find-kommandoen er et kraftfuldt værktøj til at søge efter filer eller mapper.
Søgningen kan være baseret på forskellige kriterier, og de matchende filer kan køres gennem definerede handlinger. Denne kommando falder rekursivt ned i filhierarkiet for hvert specificeret stinavn.
=> Klik her for Komplet Unix tutorial-serie
Hvad du vil lære:
hvordan man sorterer en række heltal i java
Find kommando i Unix
Syntaks:
find (options) (paths) (expression)
Indstillingerne til denne kommando bruges til at specificere, hvordan symbolske links skal behandles. Dette efterfølges af det sæt stier, der skal søges i. Hvis der ikke er angivet nogen stier, bruges den aktuelle mappe. Det givne udtryk køres derefter på hver af de filer, der findes i stierne.
Udtrykket består af en række muligheder, test og handlinger, der hver returnerer en boolsk. Udtrykket evalueres fra venstre mod højre for hver fil i stien, indtil resultatet bestemmes, dvs. resultatet vides at være sandt eller falsk.
- Option-udtryk bruges til at begrænse find-operationen og altid returnere true.
-
- -dybde: behandle bibliotekets indhold, inden du behandler selve biblioteket.
- -maxdepth: de maksimale niveauer under de angivne stier, der skal ned til et match.
- -mindepth: min-niveauerne ud over de angivne stier, der skal sænkes ned inden matchning.
-
- Testudtryk bruges til at evaluere filernes specifikke egenskaber og returnere sandt eller falsk i overensstemmelse hermed. (Uanset hvor der anvendes et tal 'n': uden noget præfiks er matchet for den nøjagtige værdi af n; med et '+' præfiks er matchet for værdier større end n; og med et '-' præfiks er matchet for værdier mindre end n.)
-
- -tid n: Returnerer sandt, hvis filen blev åbnet for n dage siden.
- -tid n: Returnerer sandt, hvis filens status blev ændret for dage siden.
- -mtime n: Returnerer sandt, hvis filens indhold blev ændret for n dage siden.
- -navn mønster: Returnerer sandt, hvis filens navn matcher det angivne skalmønster.
- -navn mønster: Returnerer sandt, hvis filens navn matcher det angivne skalmønster. Matchningen her er store og små bogstaver.
- -sti mønster: Returnerer sandt, hvis filens navn med stien matcher shell mønsteret.
- -regex mønster: Returnerer sandt, hvis filens navn med stien matcher det regulære udtryk.
- -størrelse n: Returnerer sandt, hvis filstørrelsen er n blokke.
- -perm - mode: Returnerer sandt, hvis alle tilladelsesbits for mode er indstillet til filen.
- -type c: Returnerer sandt, hvis filen er af typen c (f.eks. 'b' til blokenhedsfil, 'd' til bibliotek osv.).
- -brugernavn: Returnerer sandt, hvis filen ejes af brugernavnet 'navn'.
-
- Handlingsudtrykkene bruges til at definere handlinger, der har bivirkninger og kan returnere sandt eller falsk. Hvis der ikke er angivet handlinger, udføres '-print' -handlingen for alle matchende filer.
-
- -delete: Slet den matchede fil, og returner true, hvis det lykkes.
- -exec-kommando: Udfør den givne kommando for hver matchende fil, og returner true, hvis returværdien er 0.
- -ok kommando: Som 'exec' udtrykket, men bekræfter først med brugeren.
- -ls: Angiv den matchende fil som pr. 'ls -dils' format.
- -print: Udskriv navnet på den matchende fil.
- -beskæring: Hvis filen er en mappe, skal du ikke komme ned i den og returnere sand.
-
- Udtrykket evalueres fra venstre mod højre og er sammensat ved hjælp af følgende operatorer.
-
- ( ekspr ) : Bruges til at tvinge forrang.
- ! expr: Bruges til at negere et udtryk.
- ekspr1 -til expr2: Resultatet er et 'og' af de to udtryk. Expr2 evalueres kun af expr1 er sandt.
- expr1 expr2: 'og' operatoren er implicit i dette tilfælde.
- ekspr1 -eller expr2: Resultatet er et 'eller' af de to udtryk. Expr2 evalueres kun af expr1 er falsk.
-
Eksempler
Liste over alle filer, der findes i det aktuelle bibliotek og dets hierarki
$ find.
Liste over alle filer, der findes i det aktuelle hierarki, og alt hierarkiet nedenfor / home / xyz
$ find. /home/XYZ
Søg efter en fil med navnet abc i det aktuelle bibliotek og dets hierarki
$ find ./ -name abc
Søg efter et bibliotek med navnet xyz i det aktuelle bibliotek og dets hierarki
$ find ./ -type d -name xyz
Søg efter en fil med navnet abc.txt under det aktuelle bibliotek, og bed brugeren om at slette hver kamp.
Bemærk, at '{}' - strengen erstattes af det faktiske filnavn under kørsel, og at ';' streng bruges til at afslutte kommandoen, der skal udføres.
$ find ./ -name abc.txt -exec rm -i {} ;
Søg efter filer, der blev ændret i de sidste 7 dage under det aktuelle bibliotek
$ find ./ -mtime -7
Søg efter filer, der har alle tilladelser indstillet i det aktuelle hierarki
$ find ./ -perm 777
Konklusion
Kort sagt, Find kommando i Unix returnerer alle filer under den aktuelle arbejdsmappe. Yderligere giver find-kommandoen brugeren mulighed for at angive en handling, der skal udføres på hver matchet fil.
=> Klik her for Komplet Unix tutorial-serie
Anbefalet læsning
- Klip kommando i Unix med eksempler
- Ls Command i Unix med eksempler
- Filmanipulation i Unix: Oversigt over Unix File System
- Unix Cat Command Syntax, indstillinger med eksempler
- Grep Command i Unix med enkle eksempler
- Unix sorteringskommando med syntaks, indstillinger og eksempler
- Tjærekommando i Unix for at oprette sikkerhedskopier (eksempler)
- Sådan sammenlignes to filer i Unix: kommandoer til filsammenligning