Finde kommandoer i Linux (Finde Filer og Mapper)
find
kommando er en af de mest kraftfulde værktøjer i Linux-system administratorer arsenal. Den søger efter filer og mapper i en mappe hierarki baseret på en bruger givet udtryk og kan udføre brugerdefinerede handling på hver matchede fil.
Du kan bruge kommandoen find
til at søge efter filer og mapper baseret på deres tilladelser, type, dato, ejerskab, størrelse og mere., Det kan også kombineres med andre værktøjer som grep
eller sed
.
find-Kommando Syntaks #
Den generelle syntaks for find
kommandoen er som følger:
-
options
attribut styrer behandling af symbolske links, debugging valg og optimering af metode. -
path...
attributten definerer startmappen eller mapperne, hvor find vil søge i filerne., -
expression
attributten består af indstillinger, søgemønstre og handlinger adskilt af operatører.
for at søge efter filer i en mappe, skal brugeren påkalde kommandoen find
have læsetilladelser i den pågældende mappe.
lad os se på følgende eksempel:
Find filer efter navn #
at finde filer efter navn er sandsynligvis den mest almindelige brug af kommandoen find
., Hvis du vil finde en fil ved navn, skal du bruge-name
efterfulgt af navnet på den fil, du søger efter.
For eksempel for at søge efter en fil med navnet document.pdf
/home/linuxize
mappe, skal du bruge følgende kommando:
for At køre en store og små bogstaver search, ændre -name
indstilling med -iname
:
kommandoen ovenfor vil matche “Dokument.pdf”, ” dokument.pdf” ..osv.,
Find filer efter udvidelse #
søgning efter filer efter udvidelse er det samme som at søge efter filer efter navn. For eksempel, for at finde alle filer, der slutter med .log.gz
i /var/log/nginx
bibliotek, ville du skrive:
Det er vigtigt at nævne, at du enten skal citere mønster eller undslippe stjerne *
symbolet med omvendt skråstreg \
, så det ikke bliver fortolket af skallen, når du bruger jokertegn.,
for at finde alle filer, der ikke svarer til rege. *.log.gz
kan du bruge -not
. For eksempel, for at finde alle filer, der ikke ender i *.log.gz
ville du bruge:
Find Filer af Typen #
nogle gange har du måske brug for at søge efter specifikke filtyper såsom almindelige filer, mapper, eller symbolske henvisninger. I Linu.er alt en fil.,div>: navngiven pipe (FIFO)
s
: socketFor eksempel, at finde alle mapper i den aktuelle arbejdsmappe , du vil bruge:
eksempel kunne være at rekursivt ændre hjemmesiden fil tilladelser til 644
og mappe tilladelser til 755
ved brug af chmod
kommando:
Find Filer af Størrelsen #
for At finde filer, der er baseret på filstørrelse, passerer -size
parameter sammen med størrelsen kriterier.,9fdb538a6b”>: 512-byte blokke (default)
c
: bytesw
: to-byte ordk
: KilobyteM
: MegabyteG
: GigabyteDen følgende kommando vil finde alle filer, der er af præcis 1024
bytes indeni /tmp
bibliotek:
find
kommando giver dig også mulighed for at søge efter filer, der er større eller mindre end en angivet størrelse.,
i det følgende eksempel søger vi efter alle filer, der er mindre end 1MB
inde i den aktuelle arbejdsmappe. Bemærk minus -
symbolet, før den størrelse, værdi:
Hvis du vil søge efter filer med en størrelse større end 1MB
, så er du nødt til at bruge plus – +
symbolet:
Du kan selv søge efter filer i en størrelsesorden., Den følgende kommando vil finde alle filer mellem 1
og 2MB
:
Find Filer ved ændringsdato #
find
kommando kan også søge efter filer baseret på deres sidste ændring, adgang, eller skift tid.
samme som når du søger efter størrelse, skal du bruge plus-og minus-symbolerne til “større end” eller “mindre end”.
lad os sige, at du for et par dage siden ændrede en af Dovecot-konfigurationsfilerne, men du glemte hvilken., Du kan nemt filtrere alle filer under /etc/dovecot/conf.d
mappe, der slutter med .conf
og er blevet ændret i de sidste fem dage:
Her er endnu et eksempel på filtrering af filer baseret på de ændringsdato ved brug af -daystart
option., Nedenstående kommando vil vise en liste over alle filer i /home
bibliotek, der blev ændret 30
eller flere dage siden:
Find Filer af Tilladelser #
-perm
valgmulighed giver dig mulighed for at søge efter filer baseret på fil tilladelser.,
For eksempel, til at finde alle filer med tilladelser af præcis 775
i /var/www/html
mappe, du vil bruge:
Du kan præfiks numerisk tilstand med minus -
eller skråstreg /
.
når slash /
bruges som præfiks, skal mindst en kategori (bruger, gruppe eller andre) have mindst de respektive bits, der er indstillet til, at en fil skal matche.,
overvej følgende eksempel kommando:
ovenstående kommando vil matche alle filerne med læsetilladelser indstillet til enten bruger, gruppe eller andre.
Hvis minus -
bruges som præfiks, skal mindst de specificerede bits indstilles for at filen skal matche., Den følgende kommando vil søge efter filer, der har læse-og skriveadgang til ejer og gruppe, og som kan læses af andre brugere:
Find Filer af Ejeren #
for At finde filer, der ejes af en bestemt bruger eller gruppe, skal du bruge -user
og -group
indstillinger.for at søge efter alle filer og mapper, der ejes af brugeren linuxize
, kører du:
Her er et eksempel i den virkelige verden., Lad os sige, at du ønsker at finde alle filer, der ejes af brugeren www-data
og ændre ejerskab af de matchede filer fra www-data
til nginx
:
Find og Slette Filer #
for At slette alle matchende filer, føj -delete
indstilling til slutningen af kampen udtryk.
sørg for, at du kun bruger denne indstilling, når du er sikker på, at resultatet matcher de filer, du vil slette., Det er altid en god ide at udskrive de matchede filer, før du bruger indstillingen -delete
.
For eksempel, at at slette alle filer, der slutter med .temp
fra /var/log/
, du vil bruge:
-delete
option med ekstrem forsigtighed. Kommandoenfind
evalueres som et udtryk, og hvis du tilføjer indstillingen-delete
først sletter kommandoen alt under de udgangspunkter, du har angivet.,Når det kommer til mapper, find
kan kun slette tomme mapper, samme som rmdir
.
konklusion #
Vi har vist dig, hvordan du bruger kommandoenfind
med forskellige indstillinger og kriterier.
denne artikel skal give dig en grundlæggende forståelse af, hvordan du finder filer på dine Linu. – systemer. Du kan også besøge find
man-siden og læse om alle andre kraftfulde indstillinger på kommandoenfind
.