Find kommandoen hjælper os med at finde en bestemt fil i en mappe. Det bruges til at finde listen over filer for de forskellige betingelser som tilladelse, brugerejerskab, ændring, dato/tid, størrelse og mere.
I Unix-lignende og andre operativsystemer er find-kommandoen et kommandolinjeværktøj, der finder filer på basis af nogle få brugerspecificerede formater og enten udskriver alle matchede objekters stinavn eller, hvis andre handlinger anmodes om, implementerer denne handling på alle matchede objekter.
Den starter en søgning fra en ønsket sted at starte, og derefter krydser den rekursivt mapperne (knuderne) i en hierarkisk struktur (generelt et træ). Find kommandoen kan søge og krydse fra forskellige filpartitionssystemer, der tilhører en enkelt eller flere lagerenheder under startmappen.
Søgeformatet indeholder et mønster til at matche med filnavnet eller tidsintervallet for at matche mod ændringstidspunktet eller filadgangstiden. Find kommandoen giver som standard en liste over hver fil under den aktuelle arbejdsmappe. Brugere kan dog begrænse søgningen til et ønsket maksimumniveau på startbiblioteket.
De tilknyttede lokaliseringsprogrammer anvender en indekseret fildatabase hentet fra fine-kommandoen for at give en hurtigere teknik til at søge i hele filsystemet efter navn.
Find-værktøjet kommer som standard med det meste af Linux distros , så vi behøver ikke installere nogen ekstra pakke. Det er en af de mest essentielle og brugte kommandoer Linux system.
find
De to muligheder bestemmer, hvordan find skal overveje symbolske links. Standardnaturen er aldrig at forfølge symbolske links. Flaget, dvs. -L , vil føre til at forfølge symbolske links. Flaget, dvs. -H , vil bare forfølge symbolske links, mens du fortsætter med kommandolinjeargumenterne. Flagene er nævnt i POSIX-standarden for find-kommandoen. En grundlæggende udvidelse er et flag, dvs. -P , for eksplicit at deaktivere det følgende symbollink.
I det mindste skal en sti forudse udtrykket. Find-kommandoen kan internt fortolke jokertegn, og kommandoer skal omhyggeligt citeres for at håndtere shell-globing.
Udtrykskomponenter er isoleret af kommandolinjeargumentgrænsen, generelt angivet som mellemrum i shell-syntaksen. De betragtes fra venstre side til højre side. De kan omfatte logiske komponenter som OR og AND samt prædikater (handlinger og filtre). GNU-fund indeholder flere andre funktioner, der ikke er nævnt af POSIX.
Følgende symboler bruges til at angive biblioteket:
(.) : For det aktuelle biblioteksnavn
(/) : Til rodmappen
Kort historie om Find-kommandoen
Find-kommandoen opstod i version 5 Unix som et element i Programmers arbejdsbænk projekt og blev specificeret af Dick Haight med cpio, som er udviklet til at kunne bruges sammen.
Oprindeligt blev GNU-implementeringen af find-kommandoen specificeret af Erik Decker . Senere blev den udviklet af David MacKenzie, Tim Wood , og Jay Plett . Find-kommandoen er også blevet overført til IBM i OS.
prøv datastruktur
Prædikater
Udbredte primære produkter er:
Find standarder til at implementere -print, hvis betingelserne er sande, hvis udtrykket ikke bruger nogen af -ok, -exec, -print eller -print0.
Operatører
Operatører forbedrer find-kommandoudtrykkene. De er nævnt i rækkefølge efter faldende forrang:
- udtr1 udtr2 (eller udtr1 -a udtr2: OG. udtr2 evalueres ikke, hvis udtr1 er falsk.
- udtr1 -o udtr2 : ELLER. udtr2 evalueres ikke, hvis udtr1 er sandt.
Eksempler på find-kommandoen
Lad os se følgende eksempler på find-kommandoen:
- Find filer efter navn
- Find filer efter type
- Find nyere filer
- Find og slet en fil
- Find en mappe
- Find filer efter ændringstid
- Find filer med tilladelse
- Find og erstat filer
- Find tekst i flere filer
Find filer efter navn
Vi kan søge i alle filer, der ender med filtypenavnet '.txt'. For at gøre det skal du udføre kommandoen nedenfor:
find . -name '*.txt'
Ovenstående kommando viser alle tekstfilerne fra den aktuelle arbejdsmappe. Overvej nedenstående output:
Fra ovenstående output er alle filer med filtypenavnet '.txt' listet med find-kommandoen.
Find filer efter type
Parameteren '-type' bruges til at angive filtypen.
java oprettelsesliste
Nogle af filtyperne er som følger:
- f: almindelig fil
- d: bibliotek
- l: symbolske links
- c: tegnenheder
- b: blokere enheder
Overvej nedenstående kommando:
find . -type d -name '*.bak'
Ovenstående kommando vil liste alle mapper med '.bak'-udvidelsen. Overvej nedenstående output:
Fra ovenstående output, kommandoen 'find . -type d -navn '*.bak' viser alle mapper, der slutter med '.bak'.
Find nyere filer
Parameteren '-newer' hjælper med at søge efter filer, der er nyere end den nævnte fil. Overvej nedenstående kommando:
find . -newer msg.txt
Ovenstående kommando vil vise alle de filer, der er nyere end 'msg.txt' fra den aktuelle arbejdsmappe. Overvej nedenstående output:
Fra ovenstående output er alle de viste filer nyere end 'msg.txt'-filen.
Find og slet en fil
Muligheden '-delete' bruges til at slette en bestemt fil. Vi skal være meget forsigtige, mens vi bruger denne kommando, fordi der ikke er nogen fortryd-mulighed, hvis den en gang er udført. Overvej nedenstående kommando:
find . -name Demo.txt -delete
Ovenstående kommando vil slette filen 'Demo.txt' fra den aktuelle arbejdsmappe. Overvej nedenstående output:
Find en mappe
Muligheden 'type -d' bruges til at finde en mappe. Overvej nedenstående kommando:
find . type -depth -name Newdirectory
Ovenstående kommando vil finde 'Newdirectory'-placeringen. Overvej nedenstående output:
Find filer efter ændringstid
Muligheden '-mtime', efterfulgt af antallet af dage, bruges til at finde filerne ved ændring. Antallet af dage kan være positivt eller negativt. Den negative værdi vil blive brugt for mindre end ligesom -1 bruges for den sidste dag, og på samme måde vil +1 finde filen for mere end én dag siden. Overvej nedenstående kommando:
find ./Newdirectory -mtime -1
Ovenstående kommando vil finde de filer, der er ændret inden for den sidste dag. Overvej nedenstående output:
betinget operator i java
Find filer med tilladelse
Muligheden '-perm' bruges til at finde filer med tilladelse. Udfør find-kommandoen med '-perm'-indstillingen og send den påkrævede værdi. Overvej nedenstående kommando:
find ./ -perm 777
Ovenstående kommando viser filerne fra den angivne mappe, som alle kunne læse, skrive og udføre.
Find og erstat filer
For at finde og erstatte filer, skal vi kombinere find-kommandoen med sed-kommandoen. For at arbejde på filer skal du bruge '-exec'-indstillingen med find-kommandoen. Overvej nedenstående kommando:
find ./Newdirectory -type f -exec sed -i 's/find/replace/g' {} ;
fra ovenstående kommando vil den angivne forekomst blive erstattet. Overvej nedenstående output:
Find tekst i flere filer
Vi kan lave en anden kombination af find-kommandoen med grep-kommandoen for at finde teksten fra de forskellige filer. Overvej nedenstående kommando:
find ./Newdirectory -type f -name '*.txt' -exec grep 'demo' {} ;
Ovenstående kommando vil finde linjerne, der indeholder teksten 'demo' fra alle tekstfilerne i mappen 'Newdirectory'. Overvej nedenstående output:
Fra ovenstående output kan vi se linjerne, hvor teksten 'demo' er blevet vist.
Søg i hver mappe
$ find / -name file1 -type f -print
Ovenstående kommando finder alle mapper til en almindelig fil, hvis titel er fil1 og udskriver den på skærmen. Generelt er det ikke en god idé at søge efter filer på denne måde. Det kan tage et godt stykke tid. Så det er bedst at nævne mappen. Nogle få operativsystemer kan montere filsystemer (dynamiske), der ikke er gunstige for find-kommandoen. Mere komplicerede filnavne, der indeholder karakterer, der er unikke for skallen, skal muligvis lukkes i enkelte anførselstegn.