Linux FIND-kommando med eksempler
Ved du, hvor mange filer der er i en ny installation af Linux ? Hvis du bruger PopOS! Linux-distribution som et eksempel er der over 31.000 filer. Det er før du begynder at oprette dokumenter, gemme musik, downloade PDF'er(PDFs) eller organisere billeder.
På grund af dette bliver det en udfordring at finde den rigtige fil eller mappe i Linux , når du har brug for det. I denne artikel lærer du, hvordan du bruger Linux FIND- kommandoen, og vi vil give dig alle de eksempler, vi kan.
Linux FIND kommandosyntaks(Linux FIND Command Syntax)
Syntaks refererer til, hvordan ord eller kommandoer er sat sammen. Ligesom(Just) en normal sætning kan blive nonsens ved blot at blande ordene, kan kommandoer mislykkes, hvis de ikke bruges i den rigtige syntaks.
find [sti] [betingelser] [handlinger](find [path] [conditions] [actions])
Her er, hvad det betyder:
find – starter værktøjet Find i (Find)Linux
sti(path ) – hvor skal man kigge
betingelser(conditions ) – argumenter, du vil anvende på søgningen
handlinger(actions ) – hvad du vil gøre med resultaterne
Et simpelt eksempel med alle tre ser sådan ud:
Find . -navn fil-eksempel.rtf -print(find . -name file-sample.rtf -print)
Som du har gættet, vil dette finde filnavnet file-sample.rtf .
Punktum ( . )-stien fortæller, at find skal kigge i den aktuelle mappe og eventuelle mapper i den.
Betingelsen -name fortæller find at hente filen med det specifikke navn.
Handlingen -print fortæller FIND at vise resultaterne på skærmen.
Perioden og -print er standarder for find-kommandoen. Så det vil stadig gøre det samme, hvis du ikke bruger dem. Så find -name file-sample.rtf vil give dig de samme resultater.
Linux FIND I en anden mappe(Linux FIND In Another Directory)
Du kan søge i en anden mappe end den du er i. Indsæt bare(Just) stien til mappen efter FIND . Hvis du er ved roden, og du ved, at filen er et sted i home/user , du ville bruge:
find home/user -name file-sample.rtf
Det er stadig en rekursiv søgning, så den vil gå gennem hver mappe under bruger(user) .
Linux FIND Søg i flere mapper(Linux FIND Search Multiple Directories)
Hvis du ønskede at søge i flere mapper på én gang, skal du blot angive dem i kommandoen, adskilt af et mellemrum.
find /lib /var /bin -name file-sample.rtf
Linux FIND uden rekursion eller begrænsende rekursion(Linux FIND with No Recursion or Limiting Recursion)
Hvis du brugte FIND -kommandoen ovenfor på rodniveauet, ville den kigge igennem alle mapper på systemet. Så hvis du bare vil holde dig til den aktuelle mappe, skal du bruge -maxdepth- indstillingen. Tallet efter -maxdepth fortæller Find, hvor dybt du skal gå, før du stopper.
Brug af -maxdepth 1 betyder kun denne mappe.
find -navn fil-sample.rtf -maxdepth 1(find -name file-sample.rtf -maxdepth 1)
Brug af -maxdepth 2 eller større tal betyder at gå så mange niveauer dybere.
find -maxdepth 5 -navn fil-sample.rtf(find -maxdepth 5 -name file-sample.rtf)
Linux FIND jokertegn eksempel(Linux FIND Wildcard Example)
Kommandoen FIND bruger stjernen ( * ) som et jokertegn. Brug det til enhver del af navnet, som du er usikker på. Det kan bruges mere end én gang i navnet. Uden filtypen som en del af filnavnet vil resultaterne også indeholde mapper, der matcher.
find home/user -name file*sample*
Linux FIND efter type Eksempel(Linux FIND by Type Example)
For kun at søge efter en fil eller en mappe, skal du bruge -type-indstillingen og den relevante deskriptor. Der er et par stykker, men filerne og mapperne er mest almindelige:
f – fil
d – bibliotek
b – blokere enhed
c – tegnenhed
l – symbolsk link
s – fatning
find home/user -name file*sample* -type d
Linux FIND Uafhængigt af store og små bogstaver eksempel(Linux FIND Case Insensitive Example)
I modsætning til Windows bekymrer (Windows)Linux sig om , hvorvidt et bogstav er stort eller småt. Så hvis du vil have den til at søge efter både File-Sample.rtf og file-sample.rtf, skal du bruge -iname- indstillingen.
find home/user -iname File-Sample.rtf
Linux FIND flere filer Eksempel(Linux FIND Several Files Example)
Lad os sige, at du ville finde .rtf- og .html-versionerne af en fil. Det kan gøres i én kommando ved hjælp af -o (eller) operatoren. I nogle distributioner skal du muligvis sætte navnene inden for parenteser, f.eks. ( -name file-sample.rtf -o -name file-sample.html ) .
find home/user -name file-sample.rtf -o -name file-sample.html
Linux FIND filer, der ikke matcher et navn(Linux FIND Files That Don’t Match a Name)
Måske ved du, at der er .html - versionen af en fil, men ikke hvis der er andre. Du kan filtrere .html -versionen ud af søgningen ved at bruge muligheden -not .
find home/user -name file-sample* -not -name *.html
Linux FIND uden fejlresultater(Linux FIND Without Error Results)
I eksemplet med fund uden rekursion skal du bemærke, at det listede alle mapper, som det ikke kunne søge i, og det korrekte resultat. Det er irriterende. Lad os stoppe det fra at vise alle de " tilladelse(Permission) nægtet" mapper. Kombiner det med en anden Linux-terminalkommando(Linux terminal command) , grep. Du kan også bruge Find med grep til at finde filer med specifikke ord i dem(find files with specific words in them) .
find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”
Lad os opdele 2>&1 .
2 – repræsenterer stderr , som er en forkortelse for standardfejl output.
1 – repræsenterer stdout , som er en forkortelse for standard output
> – betyder at omdirigere det output, der er til venstre for det, til det, der er til højre for det.
& – betyder at sætte sammen.
Så 2>&1 betyder at tage standardfejlene og omdirigere dem, og derefter sætte dem sammen med standardoutputtet til én output.
Lad os nu se på | grep -v “Permission denied” .
| (kaldet et rør) – fortæller Linux at føre resultaterne af det, der er til venstre for det, til det, der er til højre for det. Det bliver ført til grep-kommandoen.
grep – er et tekstsøgningsværktøj.
-v – fortæller grep at søge efter noget, der ikke matcher tekst til venstre for -v. I dette tilfælde fortæller det grep kun at finde noget, der ikke indeholder teksten eller strengen, " Permission denied." Så grep vil kun vise dig de resultater, du leder efter, og eventuelle fejl, der ikke matcher " Tilladelse(Permission) nægtet."
Eksempel på Linux FIND efter tilladelser(Linux FIND by Permissions Example)
For at bruge dette godt, skal du lære Linux-tilladelser(learn Linux permissions) .
Eksempelfilerne har alle tilladelserne 664, undtagen én med tilladelserne 775. Brug muligheden -perm for at finde den.
find Documents/ -name file-sample* -type f -perm 775
Eksempel på Linux FIND efter størrelse(Linux FIND by Size Example)
At finde filer efter størrelse er praktisk til at få de store filer til at fylde din harddisk. Brug indstillingen -størrelse, den ønskede størrelse og et af følgende suffikser. Hvis der ikke bruges nogen suffiks, er -størrelse som standard b . For at finde filer, der er lig med og større end en bestemt størrelse, skal du sætte plustegnet (+) foran størrelsen.
M – Megabytes
G – Gigabyte
k – Kilobytes
b – blokke (512 bytes – standard)
c – bytes
w – ord (to bytes sammen)
find -size +500k
Linux FIND af ejer(Linux FIND by Owner)
Der er to måder at finde filer efter ejer. Den ene er af en ejers brugernavn, og den anden er af brugerens gruppe. For at finde efter brugernavn, brug valgmuligheden -user , efterfulgt af brugernavnet. For at finde efter brugergruppe, brug -gruppe(-group ) efterfulgt af gruppenavnet..
find -bruger gruppenavn(find -user groupname ) eller find -bruger brugernavn(find -user username)
Linux FIND filer efter sidst ændrede eksempel(Linux FIND Files by Last Modified Example)
For at finde filer, der er blevet ændret eller redigeret i de sidste X antal dage, skal du bruge -mtime efterfulgt af et tal. Hvis du sætter et minustegn ( – ) foran nummeret, vil alt være ændret inden for så mange dage før nu. Et plustegn ( + ) betyder inden for så mange dage før nu.
find -name “file-sample*” -mtime +5 (greater than 5 days ago)
find -name “file-sample*” -mtime -5 (less than 5 days ago)
For at finde efter sidst ændrede i minutter, brug indstillingen -mmin efterfulgt af antallet af minutter. Brug + og – som ovenfor.
find -name “file-sample*” -mmin -5
find -name “file-sample*” -mmin +5
Eksempel på Linux FIND filer efter sidste adgangspunkt(Linux FIND Files by Last Accessed TIme Example)
Den mulighed, der bruges til at finde filer baseret på, hvornår de sidst blev åbnet, er -atime for days og -amin for minutter. Følg det med antallet af dage eller minutter for at gå tilbage og brug + og – tegnet som større end og mindre end.
find -name “file-sample*” -atime -5
find -name “file-sample* -amin -5
Kombiner FIND med andre Linux-kommandoer(Combine FIND with Other Linux Commands)
Der er et eksempel ovenfor på at bruge find med kommandoen grep, og du kan bruge det med mange andre. Du kan se, at brug af find og andre kommandoer kan være meget kraftfuld og en enorm tidsbesparelse. Forestil dig(Imagine) at skulle slette en masse af en bestemt type fil. I stedet for at søge rundt i filstifinderen, lav bare den rigtige kommando, og det er gjort på få sekunder. Hvordan vil du bruge find-kommandoen nu?
Related posts
Konverter billeder mellem formater via kommandolinjen i Ubuntu
Hvorfor "mindre"-kommandoen er bedre end "mere" i UNIX og Linux
Brug Linux 'dd'-kommandoen med en simpel GUI
Find og skift dit værtsnavn i Ubuntu
Chown-kommando i Linux: Sådan bruges det
Sådan navigerer og bruger du Linux Directory-strukturen
Linux-filtilladelser - Hvad er Chmod 777, og hvordan man bruger det
Linux Ifconfig Command: Sådan bruges det
10 Ubuntu-tastaturgenveje til at fremskynde din arbejdsgang
Top 10 Raspberry Pi Linux-kommandoer, du bør kende
Sådan installeres næsten enhver printer på Ubuntu
Installer Adobe Digital Editions i Ubuntu Linux
Vis og skjul skrivebordsikoner i GNOME Linux
5 måder at automatisere en filsikkerhedskopi i Linux
Den nemmeste måde at fjernoprette forbindelse til Linux Mint fra ethvert operativsystem
Forstå Linux-tilladelser og chmod-brug
Opret og rediger zip-filer i Linux ved hjælp af terminalen
7 måder at zippe og udpakke filer i Linux
Sådan installeres en Linux Distro på din Chromebook
Hvad er inoder i Linux, og hvordan bruges de?