Hvordan bruke Find -kommandoen i Linux

Når du arbeider i et UNIX -miljø, for eksempel Linux i dette tilfellet, er det ideelt å vite i detalj bruken av noen kommandoer som vil hjelpe oss med flere oppgaver, enten administrative eller personlige. En av dem er Find -kommandoen som, som navnet angir, brukes til å finne filer eller elementer som er i operativsystemet på en enkel, men funksjonell og fullstendig måte.

Når vi bestemmer oss for å bruke finn -kommandoen, kan vi søke og finne listen over filer eller kataloger basert på forholdene som vi angir i brukssyntaksen som skal utføres. Deretter vil vi se hva finn -kommandoen er og hvordan vi kan bruke den i Linux ved hjelp av de forskjellige parameterne.

Hva er finneFind er en kommando i Linux -distribusjoner som er veldig nyttig til tross for at den er litt ukjent. Det er en kommando som vil lette oppgaven med å finne en fil når vi har mange filer, og det er veldig vanskelig å finne den. I tillegg til filer kan du også søke eller slette hele kataloger. Du kan søke med spesifikke filtre som størrelse, navn, utvidelse, dato …

Filtrering av søk med FindEn av de store fordelene med å bruke denne kommandoen er at vi kan filtrere resultatene etter forskjellige variabler som:

  • Tillatelser
  • Grupper
  • Brukere
  • Type fil
  • Dato for opprettelse eller endring
  • Størrelse og flere alternativer tilgjengelig

Solvetic vil forklare forskjellige metoder for å bruke Find -kommandoen effektivt i Linux, og for dette tilfellet vil vi bruke Ubuntu 19.04. Vi vil se hvordan vi kan bruke finn -kommandoen til å finne og søke etter filer med filtre ved hjelp av Linux -terminalen.

1. Slik søker du etter filer etter navn eller utvidelse med kommandoer i Linux


Dette er den viktigste delen av bruk av Find -kommandoen, og for dette er det nødvendig å kjenne navnet på objektet eller utvidelsen (.mp4, .txt, Jpg.webp, etc.) for å få et direkte resultat.

Trinn 1
For eksempel vil vi finne en fil som heter Solvetic.docx som er i en mappe på skrivebordet, i dette tilfellet må vi navigere til den banen og deretter utføre følgende:

 finn -navn Solvetic.docx 
Steg 2
Som et resultat vil vi se mappen der filen ligger (hvis aktuelt):

Trinn 3
Tvert imot, hvis vi vil se alle filene med en bestemt utvidelse, for eksempel .docx, vil vi utføre følgende:

 finn -navn "* .docx"
Trinn 4
Stjernen viser alle filer med denne utvidelsen

Trinn 5
Den generelle syntaksen for Find-kommandoen er som følger:

 finn [-H] [-L] [-P] [bane …] [uttrykk] 
Trinn 6
Disse parameterne er:

-HDen følger ikke symbolske lenker, bare unntatt hvis kommandolinjeargumenter behandles.

-LFølg de symbolske koblingene.

-PDen følger aldri symlenker og er standardalternativet

Trinn 7
Alternativet [bane…] angir stedet hvor søket skal utføres på Linux. Parameteren [uttrykk] kan være operatører, alternativer, tester eller handlinger som skal utføres. Vi ser at Find -kommandoen som standard ignorerer de tilgjengelige symbolske koblingene, men med -L vil vi søke etter dem for mer fullstendige resultater.
Det er tre optimaliseringsnivåer vi kan velge når vi kjører Find, disse er:

  • -O1
  • -O2
  • -O3

Trinn 8
Verdien -O1 er standardalternativet, og funksjonen er å tvinge Find -kommandoen til å søke basert på filnavnet vi har definert. -O2 -nivået tar seg av å prioritere filnavnfiltrene, så vil det utføre alle filtrene basert på filtypen, og senere vil det bruke andre betingelser for komplette resultater, og -O3 -nivået utfører en dypere optimalisering ved å bruke alle ressurser til maks. .

Finn kommandoalternativerDe generelle Finn -alternativene er:

  • -O1: standardverdi, det er et filter basert på navnet på den angitte filen.
  • -O2: Søk først etter filnavn og deretter etter type
  • -O3: Kjør et søk som automatisk sorterer resultatene basert på ressursbruk
  • -maxdepth X: Søk i nåværende katalog og underkataloger på X -nivå.
  • -iname: Søk uten å stole på teksten.
  • -not: Returnerer bare resultatene som ikke samsvarer med søket
  • -type f: Søk bare i filer.
  • -type d: kjør katalogsøk

2. Hvordan finne filer etter navn eller utvidelse med kommando-ufølsomme kommandoer i Linux

Dette er en metode som lar oss finne filer og vise resultatene som inneholder store og små bokstaver:

 finn -iname solvetic.docx 

Slå opp navn i katalogerMed denne metoden kan vi oppdage alle katalogene som heter Solvetic i hjemmekatalogen (/):

 finn / -type d -name Solvetic

Finn filer uten tillatelser 777777 (Rwxrwxrwx) -tillatelsene med de tillatelsene som ikke har noen begrensning, det vil si at enhver bruker kan få tilgang til dem.
For å se filene som ikke har denne tillatelsen, utfører vi følgende:

 finn / -type f! -perm 777 

Hvis vi vil se filene som har 777 tillatelser, skal vi utføre:

 finne. -type f -perm 0777 -trykk 

Finn SGID -filer med 2644 tillatelserTillatelse 2644 er filer som har lese- og skrivetillatelser, så for å se disse filene skal vi utføre:

 finn / -perm 2644

Finn SUID -filer i LinuxSUID -filer (Sett eier -bruker -ID opp ved utførelse), er spesielle filtillatelser gitt til et element og tjener til midlertidig å gi tillatelser til en bruker for å utføre et program eller en fil med tillatelsene til eieren av filen.
For å se dem, skal vi utføre følgende:

 finn / -perm / u = s

Søk i SGID -filerSGID -filer (Sett opp gruppe -ID ved utførelse) er en spesiell type filtillatelser som gjør det mulig å arve tilgangstillatelsene til brukeren som er logget inn. For å se disse filene skal vi utføre følgende:

 finn / -perm / g = s

Finn skrivebeskyttede filerFor å se hvilke som er de skrivebeskyttede filene i Linux, kjører vi:

 finn / -perm / u = r

Søk i kjørbare filerHvis vi med sikkerhet vil vite hvilke filer som er kjørbare, kan vi bruke følgende linje:

 finn / -perm / a = x

3. Hvordan finne filer med 777 og chmod 755 tillatelser på Linux

Trinn 1
Dette er spesielle lese- og skrivetillatelser, for å se disse filene skal vi utføre:

 finn / -type d -perm 777 -print -exec chmod 755 {} \;

Steg 2
Nå, hvis vi vil finne filene med tillatelser 777 og chmod 644, kjører vi:

 finn / -type f -perm 0777 -print -exec chmod 644 {} \;

4. Finn og slett filer med kommandoer i Linux

Finn og slett en filMed Find kan vi oppdage en fil og fortsette slettingen, i dette tilfellet vil vi slette filen solvetic.docx som vi utfører følgende:

 finne. -type f -navn "solvetic.docx" -exec rm -f {} \; 

Hvis vi vil slette flere filer, kan vi bruke utvidelsen deres:

 finne. -type f -navn "* .docx" -exec rm -f {} \;

Søk etter tomme filer eller katalogerVi kan spesifisere en bane, som / tmp, for å finne de tomme katalogene, i dette tilfellet utfører vi følgende:

 finn / tmp -type d -empty

For å søke etter tomme filer kjører vi:

 finn / tmp -type f -empty

Finn skjulte filerI Linux, og i alle systemer, er noen filer skjult av sikkerhetsmessige årsaker, hvis det er nødvendig for noen administrative eller støtteoppgaver å se hva disse er, kan vi utføre følgende kommando med ønsket bane, i dette tilfellet hjem:

 finn / home -type f -name ". *"

Finn en brukers filerEt annet av de mange alternativene Find -kommandoen tilbyr oss er å oppdage filene til en bestemt bruker, for eksempel å finne alle filene til den solvetiske brukeren i hjemmekatalogen vi skal utføre følgende:

 finn / hjem -bruker solvetisk

Finn filer fra en bestemt gruppeFor å finne elementene i en gruppe skal vi utføre følgende linje:

 finn / hjem -gruppe solvetisk

5. Finn filer i et tidsintervall med kommandoer i Linux

Trinn 1
Med Finn -kommandoen vil det være mulig å søke i filene som har blitt brukt i en tidsperiode, for eksempel for å se filene fra de siste 30 dagene som er endret, vi kan utføre:

 finn / -tid 30 

Steg 2
For å se filene som har presentert tilgang, kjører vi:

Trinn 3
For å se filene endret i et område på dager, for eksempel mellom 1 og 5, skal vi bruke følgende linje:

 finn / -mtime +1 -mtime -5

Trinn 4
Hvis vi vil se filene som har presentert noen endring i den siste timen eller minuttene, kan vi utføre følgende:

 finn / -cmin -45
Trinn 5
Dette vil vise filene fra de siste 45 minuttene:

Trinn 6
På samme måte kan vi liste opp filene som har blitt åpnet på en rekke tidspunkter:

 finn / -amin -60 

6. Finn filer av en bestemt størrelse med kommandoer i Linux

Trinn 1
Det er mulig å definere en filstørrelse innenfor søkekriteriene, og dermed se alle filene hvis vekt er 10 MB vi utfører:

 finn / -størrelse 10M

Steg 2
For å etablere et vektområde vil vi bruke:

 finn / -størrelse + 15M -størrelse -90M

Trinn 3
Hvis vi av en eller annen grunn ønsker å oppdage og slette en fil med en bestemt størrelse, bruker vi følgende syntaks:

 finn / -size + 200M -exec rm -rf {} \;
MerkVersjonen av finne i Unix har flere mangler, derfor må vi endre kommandoen vår for å oppnå ønsket resultat, for eksempel:

  • På linux
 finne. -størrelse 50M | xargs ls -l
  • På Unix
 finne. -størrelse 50M -print0 | xargs -0 ls -l 
På skriptnivå er alle resultatene med funn positive uansett om vi får resultater eller ikke, i linux har vi alternativet -print -quit hvis vi ikke får resultater.

Unix -versjonen av Find mangler dette alternativet, og det er best å bruke det sammen med grep for å bekrefte resultatet for eksempel.

 les -r a hvis du finner. -maxdepth 1 -navn "$ a" -trykk -avslutt | grep -q. ekko deretter "File Found" ellers ekko "Ingen fil funnet" if

7. Finn filer grafisk i Linux


Gjeldende Linux -distribusjoner, med et grafisk miljø (GUI), gir oss muligheten til å bruke den integrerte søkemotoren til enkelt å oppdage de ønskede filene, for Ubuntu 19.04 kan vi få tilgang til filer og i søkefeltet skrive inn ønsket begrep for å umiddelbart vise de tilhørende resultatene:

FORSTØRRE

Vi ser hvordan søket etter filer i Linux er noe virkelig komplett takket være Find -kommandoen og dens forskjellige varianter for å oppnå de beste resultatene.

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave