Sådan finder du filer og mapper i Linux ved hjælp af kommandolinjen

De fleste mennesker bruger en grafisk filhåndtering til at finde filer i Linux, såsom Nautilus i Gnome, Dolphin i KDE og Thunar i Xfce. Der er dog flere måder at bruge kommandolinjen til at finde filer i Linux, uanset hvilken desktop manager du bruger.

Brug af Find-kommandoen

Kommandoen "find" giver dig mulighed for at søge efter filer, som du kender de omtrentlige filnavne til. Den enkleste form for kommandoen søger efter filer i den aktuelle mappe og rekursivt gennem dens underkataloger, der matcher de leverede søgekriterier. Du kan søge efter filer efter navn, ejer, gruppe, type, tilladelser, dato og andre kriterier.

Ved at skrive følgende kommando ved prompten vises alle filer, der findes i det aktuelle bibliotek.

finde .

Prikken efter "find" angiver den aktuelle mappe.

Brug -nameargumentet for at finde filer, der matcher et bestemt mønster . Du kan bruge filnavn-metategn (som f.eks. *), Men du skal enten placere et escape-tegn ( \) foran hver af dem eller vedlægge dem i anførselstegn.

Hvis vi f.eks. Vil finde alle de filer, der starter med "pro" i dokumentmappen, bruger vi cd Documents/kommandoen til at skifte til dokumentmappen, og skriv derefter følgende kommando:

finde . -navn pro \ *

Alle filer i det aktuelle bibliotek, der starter med “pro”, vises.

BEMÆRK: Find-kommandoen er som standard store og små bogstaver. Hvis du ønsker, at søgningen efter et ord eller en sætning ikke skelner mellem store og små bogstaver, skal du bruge -inameindstillingen med findkommandoen. Det er tilfældet ufølsom version af -namekommandoen.

Hvis findder ikke findes nogen filer, der matcher dine kriterier, producerer den ingen output.

Find-kommandoen har mange tilgængelige muligheder for at forfine søgningen. For mere information om findkommandoen, kør man find  i et terminalvindue og tryk på Enter.

Brug af kommandoen Find

Find kommandoen er hurtigere end findkommandoen, fordi den bruger en tidligere bygget database, mens findkommandoen søger i det virkelige system gennem alle de faktiske mapper og filer. Find kommandoen returnerer en liste med alle stienavne, der indeholder den angivne gruppe tegn.

Databasen opdateres med jævne mellemrum fra cron, men du kan også til enhver tid opdatere den selv, så du kan få opdaterede resultater. For at gøre dette skal du skrive følgende kommando ved prompten:

sudo opdateret b

Indtast din adgangskode, når du bliver bedt om det.

Den grundlæggende form for lokaliseringskommandoen finder alle filerne på filsystemet, der starter ved roden, der indeholder hele eller en del af søgekriterierne.

find mydata

For eksempel fandt ovenstående kommando to filer indeholdende "mydata" og en fil indeholdende "data".

Hvis du vil finde alle filer eller mapper, der indeholder nøjagtigt og kun dine søgekriterier, skal du bruge -bindstillingen med lokaliseringskommandoen som følger.

find -b '\ mydata'

Omvendt skråstreg i ovenstående kommando er et kugleformet tegn, der giver en måde at udvide jokertegn i et ikke-specifikt filnavn til et sæt specifikke filnavne. Et jokertegn er et symbol, der kan erstattes af et eller flere tegn, når udtrykket evalueres. De mest almindelige wildcard-symboler er spørgsmålstegnet ( ?), som står for et enkelt tegn og stjernen ( *), som står for en sammenhængende række af tegn. I ovenstående eksempel deaktiverer backslash den implicitte erstatning af "mydata" med "* mydata *", så du ender med kun resultater, der indeholder "mydata."

Kommandoen mlocate er en ny implementering af lokalisering. Det indekserer hele filsystemet, men søgeresultaterne inkluderer kun filer, som den aktuelle bruger har adgang til. Når du opdaterer mlocate-databasen, gemmer den tidsstempeloplysninger i databasen. Dette gør det muligt for mlocate at vide, om indholdet af et bibliotek ændres uden at læse indholdet igen og gør opdateringer til databasen hurtigere og mindre krævende på din harddisk.

Når du installerer mlocate, ændres binær / usr / bin / lokaliseringsfil for at pege på mlocate. For at installere mlocate, hvis den ikke allerede er inkluderet i din Linux-distribution, skal du skrive følgende kommando ved prompten.

sudo apt-get installer mlocate

BEMÆRK: Vi viser dig en kommando senere i denne artikel, der giver dig mulighed for at bestemme, hvor eksekverbarheden for en kommando er placeret, hvis den findes.

Kommandoen mlocate bruger ikke den samme databasefil som standard lokaliseringskommandoen. Derfor kan det være en god idé at oprette databasen manuelt ved at skrive følgende kommando ved prompten:

sudo /etc/cron.daily/mlocate

Kommandoen mlocate fungerer ikke, før databasen oprettes manuelt, eller når scriptet køres fra cron.

For mere information om enten lokaliseringen eller mlocate-kommandoen, skriv man locateeller man mlocate  i et terminalvindue og tryk på Enter. Den samme hjælpeskærm vises for begge kommandoer.

Brug af hvilken kommando

Kommandoen “som” returnerer den absolutte sti for den eksekverbare fil, der kaldes, når en kommando udstedes. Dette er nyttigt til at finde placeringen af ​​en eksekverbar fil til oprettelse af en genvej til programmet på skrivebordet, på et panel eller et andet sted i skrivebordsadministratoren. For eksempel viser indtastning af kommandoen which firefox resultaterne vist i billedet nedenfor.

Som standard viser hvilken kommando kun den første matchende eksekverbare. For at få vist alle matchende eksekverbare filer skal du bruge -aindstillingen med kommandoen:

hvilken -en Firefox

Du kan søge efter flere eksekverbare filer ved hjælp af en gang, som vist i det følgende billede. Kun stierne til fundet eksekverbare filer vises. I eksemplet nedenfor blev kun den "ps" eksekverbare fundet.

BEMÆRK: Den kommando, der kun søger i den aktuelle brugers PATH-variabel. Hvis du søger efter en eksekverbar fil, der kun er tilgængelig for rodbrugeren som en normal bruger, vises der ingen resultater.

For mere information om hvilken kommando, skriv "mand hvilken" (uden anførselstegn) ved kommandoprompten i et terminalvindue og tryk på Enter.

Brug af Whereis-kommandoen

Whereis-kommandoen bruges til at finde ud af, hvor binære, kilde- og man-sidefiler til en kommando er placeret. For eksempel viser indtastning whereis firefox ved prompten resultater som vist i det følgende billede.

Hvis du kun ønsker at stien til den eksekverbare skal vises, og ikke stierne til kilden og man (siderne), skal du bruge -bindstillingen. For eksempel vises kommandoen whereis -b firefoxkun /usr/bin/firefoxsom resultatet. Dette er praktisk, fordi du sandsynligvis vil søge efter et programs eksekverbare fil oftere, end du ville søge efter kilde- og mandsider til det program. Du kan også kun søge efter kildefilerne ( -s) eller kun til mandsiderne ( -m).

For at få flere oplysninger om whereis-kommandoen, skriv man whereis et terminalvindue og tryk på Enter.

Forstå forskellen mellem Whereis-kommandoen og Hvilken kommando

Whereis-kommandoen viser dig placeringen for binær-, kilde- og mandsiderne til en kommando, mens kommandoen hvilken kun viser dig placeringen af ​​binæren til kommandoen.

Whereis-kommandoen søger gennem en liste over specifikke mapper efter binære, kilde- og man-filer, hvorimod den kommando, der søger i katalogerne, der er angivet i den aktuelle brugers PATH-miljøvariabel. For whereis-kommandoen kan du finde listen over specifikke mapper i FILES-sektionen på man-siderne til kommandoen.

Når det kommer til resultater, der vises som standard, viser whereis-kommandoen alt, hvad den finder, mens kommandoen kun viser den første eksekverbare, den finder. Du kan ændre det ved hjælp af den -amulighed, der er diskuteret tidligere, for hvilken kommando.

Fordi whereis-kommandoen kun bruger stier, der er hårdkodede i kommandoen, kan du muligvis ikke altid finde det, du leder efter. Hvis du søger efter et program, som du tror kan være installeret i et bibliotek, der ikke er angivet på man-siderne til hvor-kommandoen, kan du bruge kommandoen hvilken med -amulighed for at finde alle forekomster af kommandoen i hele systemet.