Sådan bruges Find -kommandoen i Linux

Når du arbejder i et UNIX -miljø, f.eks. Linux i dette tilfælde, er det ideelt at kende detaljeret til brugen af ​​nogle kommandoer, der hjælper os med flere opgaver, uanset om de er administrative eller personlige. En af dem er Find -kommandoen, som, som navnet angiver, bruges til at finde filer eller elementer, der er i operativsystemet på en enkel, men funktionel og komplet måde.

Når vi beslutter os for at bruge kommandoen find, kan vi søge og lokalisere listen over filer eller mapper baseret på de betingelser, vi angiver i brugssyntaksen, der skal udføres. Dernæst vil vi se, hvad find -kommandoen er, og hvordan vi kan bruge den i Linux ved hjælp af dens forskellige parametre.

Hvad findesFind er en kommando inden for Linux -distributioner, der er meget nyttig på trods af at den er noget ukendt. Det er en kommando, der vil lette opgaven med at finde en fil, når vi har mange filer, og det er virkelig svært at finde den. Ud over filer kan du også søge eller slette hele biblioteker. Du kan søge med bestemte filtre som størrelse, navn, udvidelse, dato …

Filtrering af søgninger med FindEn af de store fordele ved at bruge denne kommando er, at vi kan filtrere resultaterne efter forskellige variabler som:

  • Tilladelser
  • Grupper
  • Brugere
  • Filtype
  • Dato for oprettelse eller ændring
  • Størrelse og flere muligheder tilgængelige

Solvetic vil forklare forskellige metoder til effektivt at bruge Find -kommandoen i Linux, og i dette tilfælde vil vi bruge Ubuntu 19.04. Vi vil se, hvordan vi kan bruge kommandoen find til at finde og søge efter filer med filtre ved hjælp af Linux -terminalen.

1. Sådan søges filer efter navn eller udvidelse med kommandoer i Linux


Dette er den mest væsentlige del af brugen af ​​Find -kommandoen, og til dette er det nødvendigt enten at kende navnet på objektet eller dets udvidelse (.mp4, .txt, Jpg.webp osv.) For at opnå et direkte resultat.

Trin 1
For eksempel vil vi finde en fil kaldet Solvetic.docx, som er i en mappe på skrivebordet, i dette tilfælde skal vi navigere til den sti og derefter udføre følgende:

 find -navn Solvetic.docx 
Trin 2
Som et resultat vil vi se den mappe, hvor filen er hostet (hvis relevant):

Trin 3
Tværtimod, hvis vi vil se alle filerne ved en bestemt udvidelse, f.eks. .Docx, vil vi udføre følgende:

 find -navn "* .docx"
Trin 4
Stjernen viser alle filer med denne udvidelse

Trin 5
Den generelle syntaks for Find-kommandoen er som følger:

 find [-H] [-L] [-P] [sti …] [udtryk] 
Trin 6
Disse parametre er:

-HDet følger ikke symbolske links, undtagen hvis kommandolinjeargumenter behandles.

-LFølg de symbolske links.

-PDet følger aldrig symlinks og er standardindstillingen

Trin 7
Indstillingen [sti …] angiver det sted, hvor søgningen skal udføres på Linux. Parameteren [udtryk] kan være operatorer, muligheder, tests eller handlinger, der skal udføres, vi ser, at som standard vil Find -kommandoen ignorere de tilgængelige symbolske links, men med -L vil vi søge efter dem for mere komplette resultater.
Der er tre optimeringsniveauer, som vi kan vælge, når vi kører Find, disse er:

  • -O1
  • -O2
  • -O3

Trin 8
Værdien -O1 er standardindstillingen, og dens funktion er at tvinge Find -kommandoen til at søge baseret på det filnavn, vi har defineret. -O2 -niveauet sørger for at prioritere filnavnsfiltrene, derefter vil det udføre alle filtre baseret på filtypen og senere vil det bruge andre betingelser for komplette resultater, og -O3 -niveauet udfører en dybere optimering ved hjælp af alle ressourcer til maks. .

Find kommandoindstillingerDe generelle Find -muligheder er:

  • -O1: standardværdi, det er et filter baseret på navnet på den angivne fil.
  • -O2: Søg først efter filnavn og derefter efter type
  • -O3: Kør en søgning, der automatisk sorterer resultaterne baseret på ressourceforbrug
  • -maxdepth X: Søg i det aktuelle bibliotek og undermapper på X -niveauer.
  • -iname: Søg uden at stole på teksten.
  • -not: Returnerer kun de resultater, der ikke matcher søgningen
  • -type f: Søg kun i filer.
  • -type d: Kør bibliotekssøgning

2. Sådan finder du filer efter navn eller udvidelse med store og små bogstaver i Linux

Dette er en metode, der giver os mulighed for at finde filer og vise de resultater, der indeholder store og små bogstaver:

 find -iname solvetic.docx 

Slå navne op i mapperMed denne metode kan vi registrere alle biblioteker, der hedder Solvetic i hjemmekataloget (/):

 find / -type d -name Solvetic

Find filer uden tilladelser 777777 (Rwxrwxrwx) -tilladelserne med de tilladelser, der ikke har nogen begrænsning, det vil sige, at enhver bruger kan få adgang til dem.
For at se de filer, der ikke har denne tilladelse, udfører vi følgende:

 find / -type f! -perm 777 

Hvis vi nu vil se de filer, der har 777 tilladelser, skal vi udføre:

 Find. -type f -perm 0777 -print 

Find SGID -filer med 2644 tilladelserTilladelse 2644 er filer, der har læse- og skrivetilladelser, så for at se disse filer skal vi udføre:

 find / -perm 2644

Find SUID -filer i LinuxSUID -filer (Indstil ejerens bruger -id til udførelse), er særlige filtilladelser, der er givet til et element, og tjener til midlertidigt at give tilladelser til en bruger for at udføre et program eller en fil med tilladelser fra ejeren af ​​filen.
For at se dem skal vi udføre følgende:

 find / -perm / u = s

Søg efter SGID -filerSGID -filer (Konfigurer gruppe -id ved udførelse) er en særlig type filtilladelser, hvormed det er muligt at arve adgangstilladelserne til den bruger, der er logget ind. For at se disse filer skal vi udføre følgende:

 find / -perm / g = s

Find skrivebeskyttede filerFor at se, hvilke filer der er skrivebeskyttede filer i Linux, udfører vi:

 find / -perm / u = r

Søg i eksekverbare filerHvis vi med sikkerhed vil vide, hvilke filer der er eksekverbare, kan vi bruge følgende linje:

 find / -perm / a = x

3. Sådan finder du filer med 777 og chmod 755 -tilladelser på Linux

Trin 1
Disse er særlige læse- og skrivetilladelser, for at se disse filer skal vi udføre:

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

Trin 2
Nu, hvis vi vil finde de filer med tilladelser 777 og chmod 644, udfører vi:

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

4. Find og slet filer med kommandoer i Linux

Find og slet en filMed Find kan vi registrere en fil og fortsætte med at slette den, i dette tilfælde vil vi slette filen solvetic.docx, som vi udfører følgende for:

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

Hvis vi vil slette flere filer, kan vi bruge deres udvidelse:

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

Søg efter tomme filer eller mapperVi kan angive en sti, som / tmp, for at finde de tomme mapper, i dette tilfælde udfører vi følgende:

 find / tmp -type d -empty

For at søge efter tomme filer udfører vi:

 find / tmp -type f -empty

Find skjulte filerI Linux og i alle systemer er nogle filer skjult af sikkerhedsmæssige årsager, hvis det er nødvendigt for en administrativ eller supportopgave at se, hvad disse er, kan vi udføre følgende kommando med den ønskede sti, i dette tilfælde hjem:

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

Find en brugers filerEn anden af ​​de mange muligheder, som Find -kommandoen tilbyder os, er at registrere filerne fra en bestemt bruger, for eksempel at finde alle filerne fra den solvetiske bruger i hjemmekataloget, vi skal udføre følgende:

 find / home -bruger solvetisk

Find filer fra en bestemt gruppeFor at finde elementerne i en gruppe skal vi udføre følgende linje:

 find / hjem -gruppe solvetisk

5. Find filer i et tidsinterval med kommandoer i Linux

Trin 1
Med kommandoen Find vil det være muligt at søge i de filer, der har været brugt i et tidsrum, for eksempel for at se filerne fra de sidste 30 dage, der er blevet ændret, vi kan udføre:

 find / -mtime 30 

Trin 2
For at se de filer, der har præsenteret adgang, udfører vi:

Trin 3
For at se filerne ændret i en række dage, for eksempel mellem 1 og 5, vil vi bruge følgende linje:

 find / -mtime +1 -mtime -5

Trin 4
Hvis vi vil se de filer, der har givet ændringer i den sidste time eller minutter, kan vi udføre følgende:

 find / -cmin -45
Trin 5
Dette viser filerne fra de sidste 45 minutter:

Trin 6
På samme måde kan vi liste de filer, der er åbnet inden for en tidsperiode:

 find / -amin -60 

6. Find filer af en bestemt størrelse med kommandoer i Linux

Trin 1
Det er muligt at definere en filstørrelse inden for søgekriterierne og dermed se alle de filer, hvis vægt er 10 MB, vi udfører:

 find / -størrelse 10M

Trin 2
For at etablere et vægtinterval vil vi bruge:

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

Trin 3
Hvis vi af en eller anden grund ønsker at opdage og slette en fil med en bestemt størrelse, bruger vi følgende syntaks:

 find / -size + 200M -exec rm -rf {} \;
BemærkVersionen af ​​find i Unix har flere mangler, derfor skal vi ændre vores kommando for at opnå det ønskede resultat, for eksempel:

  • På linux
 Find. -størrelse 50M | xargs ls -l
  • På Unix
 Find. -størrelse 50M -print0 | xargs -0 ls -l 
På script -niveau er alle resultater med fund positive uanset om vi får resultater eller ej, i linux har vi muligheden -print -quit i tilfælde af ikke at få resultater.

Unix -versionen af ​​Find mangler denne mulighed, og det er bedst at bruge den sammen med grep til at verificere resultatet f.eks.

 læs -r a hvis find. -maxdepth 1 -navn "$ a" -print -afslut | grep -q. ekko derefter "Fil fundet" ellers ekko "Ingen fil fundet" hvis

7. Find filer grafisk i Linux


Nuværende Linux -distributioner med et grafisk miljø (GUI) giver os mulighed for at bruge den integrerede søgemaskine til let at opdage de ønskede filer, i tilfælde af Ubuntu 19.04 kan vi få adgang til filer og i søgefeltet indtaste det ønskede udtryk for at øjeblikkeligt vise de tilhørende resultater:

FORSTØRRE

Vi ser, hvordan søgningen efter filer i Linux er noget virkelig komplet takket være Find -kommandoen og dens forskellige variationer for at opnå de bedste resultater, alt efter hvad der er tilfældet.

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave