Denne opplæringen fokuserer på hvordan å finne filer på Linux ved hjelp av søk og finn-kommandoen.

Som en system administrator, det er en svært vanlig oppgave å lete etter en bestemt fil i filsystemet.

Imidlertid kan det være noen ganger vanskelig å finne filer på en Linux-filsystem spesielt hvis du har dusinvis av forskjellige brukere.

Det er to kommandoer som kan hjelpe deg å oppnå ditt mål : å finne og lokalisere.,

I denne opplæringen, vi kommer til å se hvordan du kan bruke disse kommandoene effektivt og hvordan de kan bli stilt for å oppnå hva vi er ute etter.

Innholdsfortegnelse

Finn Filer ved hjelp av kommandoen Finn

Den første måten å finne og finne filer på en Linux-verten er å bruke kommandoen finn.,

som standard, finn-kommandoen er tilgjengelig på alle distribusjoner, og det har følgende syntaks for

$ find <options> <path> <expression>

Quick tips : har du noen problemer med å huske hvis banen eller uttrykk som kommer først?

Husk at for grEP er Uttrykk Banen, og finn er det motsatte, så Banen Uttrykk!

Finn er en ganske kraftig kommando som det har flere alternativer enn de finn-kommandoen.

Her er alle muligheter for søk-funksjonen på Linux.,

søk etter filer med søk etter filnavn

Den mest utbredte bruken av funksjonen søk er å finne filer som er gitt sine filnavn.

$ find <path> -name <pattern>

Den viktigste forskjellen mellom søk og finn når det gjelder å søke etter filer som er at finne vil oppslag etter filnavn, mens finn vil se etter veier til filen.

For eksempel, hvis vi går tilbake til runlevel eksempel vi har brukt før, her er hvordan du skal se etter runlevel filer ved hjelp av finn-kommandoen.,

$ find / -name runlevel*

Hva er «2> /dev/null» delen?

jeg omdirigert feil utgang til /dev/null med utgang omadressering for å unngå feilmeldinger på konsollen.

søk etter filer ved hjelp av en filtype

Som vi tidligere har omtalt i vår artikkel på harde og myke koblinger, filer som er tilordnet filtyper og det er brukt som en måte å skille dem.,

Her er en oppsummering av alle typer filer som brukes på Linux.

  • f : en vanlig fil
  • d : en mappe eller katalog
  • l : en symbolsk link eller soft link
  • b : blokkere enheter (for eksempel en harddisk, for eksempel)
  • c : karakter enheter (serielle porter, lyd-kort)
  • p : navngitt av rør
  • s : socket

å Vite alle disse filtypene du er nå i stand til å søke etter filer av filtypen med kommandoen finn.

$ find <path> -type <filetype>

hvis vi For eksempel vil søke etter alle symbolske koblinger på verten, ville vi gi følgende kommando.,

$ find / -type l

Parametere kan kombineres, for eksempel hvis jeg ser på alle symbolske koblinger som har filnavn som slutter med «.service» (for å isolere alle systemd tjenester, for eksempel), jeg ville kjøre følgende kommando.

$ find / -type l -name *.service

søk etter filer ved hjelp av et mønster (for utvidelser)

på samme måte til finn-kommandoen, er du i stand til å finne filer på Linux ved hjelp av et mønster.

Som en påminnelse, et mønster som er en streng som inneholder globbing tegn (for eksempel *, ?, eller områder).

Dette alternativet er spesielt når du prøver å finne filer som er gitt en forlengelse, for eksempel Javascript-filer.

for Å finne filer på Linux ved hjelp av et mønster, kjør følgende kommando

$ find <path> -name ".<extension>"
$ find / -name "*.js"

Filer på Linux med eieren

noen Ganger, ønsker du å finne filer som er opprettet av en bestemt bruker.

Når du sletter en bruker på din vert, kan du ønsker å slette alle filer som er assosiert med denne brukeren for eksempel.,

noen Ganger, brukere opprette filer ut av sine hjem katalog og slette en bruker hjemmekatalog er ikke tilstrekkelig i seg selv.

Som en konsekvens, for å finne filer som er opprettet av en bestemt bruker på Linux, kan du kjøre følgende kommando

$ find <path> -user <user>

For eksempel, for å finne alle filer som eies av «john» på min vert, jeg ville kjøre følgende kommando.

$ find / -user john

Nå hva om jeg ønsker å slette alle filer som eies av john med en enkel kommando?,

Det kan være lett oppnås ved hjelp av slett-flagg.

$ find / -user john -delete

Søk filer på Linux ved tillatelser

ved Hjelp av finn-kommandoen, kan du også finne og finne filer som har visse rettigheter på din vert.

$ find <path> -perm <permissions>

Som en påminnelse, her er hvordan filen tillatelser fungerer på Linux.

for Å finne alle filer som har alle tillatelser (a 777 gitt binære notasjon), kan du kjøre følgende kommando.,

$ find / -perm 777

Det kan være ganske praktisk hvis sikkerhetsmessige grunner til at du ønsker å inspisere hvis ingen filer er konfigurert med fulle rettigheter på systemet.

søk etter filer med søk etter størrelse

en Annen veldig nyttig måte å finne og finne filer på Linux er å finne kommandoen finn med størrelse.

størrelsen alternativet lar deg søke etter filer som er akkurat den størrelsen du angir, er større enn en bestemt størrelse eller lavere enn en bestemt størrelse.,

Hvis du vil søke etter filer etter størrelse, kan du bruke følgende kommando

$ find <path> -size <size>

størrelsen er definert ved følgende prefikser :

  • c: byte
  • b: 512-byte blokker
  • k: Kilobyte
  • M: Megabyte
  • G: Gigabyte

Du kan angi en «+» hvis du er ute etter filer som er større enn størrelsen som er oppgitt.,

For eksempel, for å finne filer som er større enn 1 GB på systemet, kan du kjøre følgende kommando

$ find / -size +1G

for Å finne filer som er lavere enn 10 MBs på systemet, kan du kjøre følgende kommando

$ find / -size -10M

til Slutt, for å søke etter filer som er akkurat den størrelsen som er angitt i spørringen, du bør ikke legge eventuelle pluss-eller minus-prefikser til kommando.

$ find / -size 1024k

– kommandoen bare definert vil finne alle filer som er nøyaktig 1024 Kb i størrelse på verten.,

Søk filene på Linux-endring av dato

Med finn, du er også i stand til å finne filer som er gitt en endring av dato, fersk eller ikke.

Denne kommandoen er veldig nyttig og brukes ganske ofte av systemansvarlige for å finne filer eller kataloger som har nylig blitt endret.

for Å søke etter filer ved hjelp av endring dato, kan du kjøre følgende kommando

$ find <path> -mtime <time>

Hvor tid representerer filer som ble endret 24*<tid> timer siden.

Som en konsekvens, tid er uttrykt i dager.,

på samme måte til størrelse, kan du legge til en «pluss» eller et «minus» – operatoren til deg tid til å se etter filer som ble endret mer enn <tid> dager siden, eller mindre enn <tid> dager siden.

For eksempel, for å se etter filer som ble endret nøyaktig 3 timer siden, kan du kjøre følgende kommando.,

$ find / -mtime 3

for Å finne filer som ble endret i mer enn en uke siden, kan du kjøre følgende kommando

$ find / -mtime +7

for Å finne filer som ble endret i mindre enn to dager siden, vil du kjøre følgende kommando

$ find / -mtime -2

søk etter filer med dynamisk dybde

Som du sikkert la merke til, siden begynnelsen av denne opplæringen, gir vi eksempler på filer søk med start fra rotkatalogen.

Som en konsekvens, alle mappene er besøkt med undermapper.,

Imidlertid kan vi begrense antall mapper med undermapper reiste fra en katalog, dette kalles dybde.

for Å begrense fil søker til en gitt dybde, kan du kjøre følgende spørring

$ find <path> -maxdepth <depth>

Som et eksempel her er hvordan du kan begrense filer søk til den gjeldende katalogen, uten barn, kataloger leses.

$ find / -maxdepth 1

Du kan selvsagt kombinere denne kommandoen med navnet flagg for å søke etter filer med et gitt navn i den aktuelle katalogen.,

$ find . -maxdepth 1 -name *.tar

finner du Lenker med -exec

I noen tilfeller kan du finne nyttig å kjede finn-kommandoen med exec-en.

exec alternativet kan brukes for å kjede flere kommandoer sammen : tar resultatet av det første som en inngang til den andre.,

La oss si for eksempel at du ønsker å finne alle filer som er endret med mindre enn ett minutt siden

$ find /home/user -mmin -1./file1

la oss Nå si at du ønsker å slette alle filer som ble endret med mindre enn ett minutt siden.

Du kan kjede finn-kommandoen med-exec-alternativet ved å bruke følgende syntaks.

$ find /home/user -mmin -1 -exec echo rm -f '{}' \;

Vi selvsagt først «echo» de resultater som vi ønsker å være sikker på at vi vil slette de riktige filene.,

Når du er klar til å slette disse filene, er det bare å fjerne echo-kommandoen.

$ find /home/user -mmin -1 -exec rm -f '{}' \;

Finn Filer på Linux ved hjelp av Finn-kommandoen

en Annen flott måte å finne og finne filer på Linux er å bruke finn-kommandoen.

Forutsetninger

Dersom den finner du kommandoen ikke er tilgjengelig på ditt system, husk å lese den neste delen for å få finne kjører på systemet ditt.,

a – å Installere Finne på APT og RPM-baserte distribusjoner

for Å installere finn, du må sudo-rettigheter på Linux-verten.

for Å sjekke om finn er installert på din vert, kjører du finne kommandoen på kommandolinjen.,

$ locate

Hvis du finner er installert på datamaskinen, det vil forvente et uttrykk for å forutsatt

Hvis du vil finne er ikke installert på din vert, en feilmelding vises

for Å installere finne på Ubuntu 18.04 og Debian 10, kjør følgende kommando.,

$ sudo apt-get install mlocate

hvis du er på en CentOS eller Fedora-basert distribusjon, kjør følgende kommando for å installere på finn.

$ sudo yum install mlocate

b – Oppdaterer din mlocate database

finn-funksjonen fungerer sammen med en lokal database som er lagret på din filsystem som lagrer hver enkelt filnavn på verten.

Når du utfører en finne kommandoen, finn vil søke i databasen som er utarbeidet av updatedb for filen du søker etter.

med Jevne mellomrom, en cron-jobb oppdaterer mlocate.db filen for deg å se etter de nyeste oppføringene.,

databasen er plassert i /var/lib/mlocate/mlocate.db standard og updatedb konfigurasjonsfilen er lagret i /etc/updatedb.conf.

For nå, kan du forlate standard valg og kjøre en enkel updatedb kommando for databasen for å oppdatere.

$ sudo updatedb

Finn filer som er gitt et navn mønster

Den mest grunnleggende måten å finne filer på Linux er å gi et mønster til finn-kommandoen.,

standard syntaks av finn-kommandoen er den følgende

$ locate ... ...

Hvis du er ute etter en gitt konfigurasjon fil på systemet ditt, en enkel måte å finne ut det på, er å gi en komplett fil til finn-kommandoen.

$ locate updatedb.conf

Som du kan se, finn-kommandoen returnerer den komplette stier til filen jeg leter etter.,

Finn filer i begrenset kataloger

noen Ganger, kan du ikke ha tilgang til noen kataloger på systemet.

Som en konsekvens, vil du ikke være i stand til å finne filer som ligger i det.

La oss ta et eksempel på et forbudt mappe som inneholder en fil som heter «begrenset-fil».

for Å finne filer som ligger på begrenset kataloger, du har å kjøre finne kommandoen med sudo-rettigheter.,

$ sudo locate restricted-file

Finn filer ved hjelp av et mønster

ved Hjelp av finn-kommandoen, kan du gi «mønstre» i form av globbing tegn.

Globbing tegn, også kalt jokertegn, er tegn som brukes for å matche en eller flere oppføringer med et forenklet uttrykk.

Den mest populære er «*» som vil matche alle tegn, inkludert ingen.

Her er en oppsummering tabell for globbing tegn og deres funksjoner.,6934f1″>

devdevco, matches one character given in the bracket ab aab, bab cab matches one character from the (locale-dependent) range given in the bracket runlevel runlevel1, runlevel2, runlevel6 runlevels, runlevelo

As an example, here’s a way to locate all text files on your system.,

$ locate *.txt

Finn filer ved hjelp av et regulært uttrykk

Som nevnt i den offisielle man-siden for å finne, den finn-kommandoen godtar et mønster som en inngang.

Det betyr at du er i stand til å gi en regular expression til finn-kommandoen.

for Å finne og finne filer som er gitt en regex, bruk –regex alternativ for finn-kommandoen.,

$ locate --regex <regex>

For eksempel, å isolere alle filer som begynner med runlevel etterfulgt av et nummer, kan du kjøre følgende kommando.

$ locate --regex runlevel+

Når du bruker regexes, det er ett viktig poeng som du bør være oppmerksom på når du å finne filer.

finn-kommandoen er ute etter stier til filer i den lokale databasen.,

Som en konsekvens, når du søker etter filer, bør du være oppmerksom på at det regulære uttrykket har å matche banen til filen og ikke fil alene.

For eksempel, hvis jeg ser etter filer som starter med «run», men ingen resultater vil ikke bli returnert så banen til filen starter med «/usr».

Finne filer ved å bruke mellom store og små bokstaver alternativ

Når du søker etter filer på filsystemet, kan du ikke være sikker på om måten en gitt fil ble kalt.,

Var det skrevet med store bokstaver eller små bokstaver? Gjør det inneholder noen store bokstaver i det hele tatt?

for Å finne og finne filer ved hjelp av en mellom store og små bokstaver alternativet, legge til -jeg muligheten til å din finn-kommandoen.,

$ locate -i <file_pattern>

Søk i filer av innhold ved hjelp av grep

I noen tilfeller, du kan være interessert i å søke etter filer som er samsvarende et bestemt ord i setningen som er plassert INNE i filen.

Dette kan skje for eksempel hvis du prøver å finne filen som inneholder spesifikke logger hendelser.,

Den første måten å søke etter filer som passer til et bestemt ord, er ved å bruke grep-kommandoen

$ grep -r <pattern> <path>

Merk : ikke glem det «-r» alternativet hvis du søker etter filer gjennom hele kataloger.

For eksempel., hvis du søker etter alle filer som har «feil» i sitt innhold, som ligger i din hjemmekatalog, ville du skrevet

$ grep -r error /home/user

I noen tilfeller, du ønsker kanskje å finne filer som er gitt et vanlig uttrykk.

for å finne filer ved hjelp av et regulært uttrykk, bruk «E» – alternativet.,

$ grep -r -E <expression> <path>

La oss si for eksempel at du vil finne den file matchende ‘abc’ mønster i en av dine filer du ville skrive

$ grep -r -E "abc.*" --color /home/user

Merk : fargen valget er brukt for å markere kamper bruke grep-kommandoen.,

Finn filer som bruker

en Annen flott måte å finne filer på Linux er å bruke den som har kommandoen.

hvilken kommando som skal brukes for å finne filer som er forbundet med en bestemt kommando.

Dette kan bli svært nyttig når du ikke vet hvor du lagret dine binærfiler for en kommando eller hvis du trenger å finne en kommando for å legge den til på din VEI.,

$ which <command>

For eksempel, for å søke etter filer som er knyttet til «ls» – kommandoen, vil du skriv

$ which ls/usr/bin/ls

Som du kan se, får du den fullstendige banen til filen.

Finn binærfiler ved hjelp av whereis

på samme måte, det er helt mulig å søke etter filer ved å bruke whereis kommando.

«whereis» – kommandoen, kan bli sett på som et supersett av «som» kommando : «whereis» gir informasjon om navnet på kommandoen, for filen stedet samt plassering av manuell sider.,

for Å utføre whereis, skriver du bare «whereis» og legg inn navnet på din kommando.

$ whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

Ganske hendig!

Konklusjon

I dag er opplæringen, har du lært hvordan du kan finne og finne filer på Linux ved å bruke to viktigste kommandoene : finne og finne.

Selv om alternativ ble presentert enkeltvis, bør du huske at de kan kombineres for å være i stand til å angi enda mer filene du leter etter.

Som alltid, hvis du er interessert i Linux systemadministrasjon, vi har en hel del dedikert til Linux på vår nettside.,

As always, here is a short video on the subject in case you prefer Youtube videos.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *