28Jun

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

click fraud protection

De fleste 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 på Linux, uanset hvilken desktop manager du bruger.

Brug af Find Command

Med "find" -kommandoen kan du søge efter filer, som du kender til de omtrentlige filnavne. Den enkleste form for kommandoen søger efter filer i den aktuelle mappe og rekursivt gennem dets undermapper, som svarer til de medfølgende søgekriterier. Du kan søge efter filer efter navn, ejer, gruppe, type, tilladelser, dato og andre kriterier.

Indtastning af følgende kommando ved prompten viser alle filer, der findes i den aktuelle mappe.

finder.

Punten efter "find" angiver den aktuelle mappe.

Hvis du vil finde filer, der matcher et bestemt mønster, skal du bruge navnet-argumentet. Du kan bruge filnavnet metakaracters( f.eks. *), Men du bør enten sætte en escape-tegn( \) foran hver af dem eller vedhæfte dem i citater.

instagram viewer

Hvis vi f.eks. Vil finde alle de filer, der starter med "pro" i dokumentmappen, vil vi bruge cd'en Dokumenter / kommando til at skifte til Dokumenter-biblioteket, og skriv derefter følgende kommando:

find.-name pro \ *

Alle filer i den aktuelle mappe, der begynder med "pro", er angivet.

BEMÆRK: Find-kommandoen er som standard bogstavkänslig. Hvis du vil have søgningen efter et ord eller en sætning for at være tilfældigt ufølsom, skal du bruge indstillingen -iname med find-kommandoen. Det er tilfældet ufølsom version af navnet-kommandoen.

Hvis find ikke finder nogen filer, der matcher dine kriterier, produceres det ingen output.

Find-kommandoen har mange muligheder for at forfinne søgningen. For mere information om find-kommandoen, kør man finde i et Terminal vindue og tryk Enter.

Brug af lokaliseringskommandoen

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

Databasen opdateres med jævne mellemrum fra cron, men du kan også opdatere det selv når som helst, så du kan få resultater, der er up-to-the-minute. For at gøre dette skal du skrive følgende kommando ved spørgsmålet:

sudo updatedb

Indtast dit kodeord, når du bliver bedt om det.

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

finde mydata

F.eks. Fandt ovenstående kommando to filer, der indeholder "mydata" og en fil, der indeholder "data".

Hvis du vil finde alle filer eller mapper, der indeholder nøjagtige og kun dine søgekriterier, skal du bruge -b-indstillingen medlokaliser kommandoen som følger.

find -b '\ mydata'

Baggrunden i kommandoen ovenfor er et globbing-tegn, som giver mulighed for at udvide jokertegn i et ikke-specifikt filnavn til et sæt specifikke filnavne. Et wildcard er et symbol, der kan erstattes af et eller flere tegn, når udtrykket er evalueret. De mest almindelige wildcard-symboler er spørgsmålet( ?), Som står for et enkelt tegn og asterisken( *), som står for en sammenhængende streng af tegn. I ovenstående eksempel deaktiverer backslash den implicitte udskiftning 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 indeholder kun filer, som den aktuelle bruger har adgang til. Når du opdaterer mlocate-databasen, holder den tidsstempeloplysninger i databasen. Dette giver mulighed for at vide, om indholdet i en mappe æ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 /usr/bin/ binærfilen til punkt til mlocate. Hvis du vil installere mlocate, skal du skrive følgende kommando ved prompten, hvis den ikke allerede er inkluderet i din Linux-distribution.

sudo apt-get install mlocate

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

Kommandoen mlocate bruger ikke den samme databasefil som standard locate kommandoen. Derfor vil du måske oprette databasen manuelt ved at skrive følgende kommando ved prompten:

sudo /etc/cron.daily/ mlocate

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

For mere information om enten lokaliseringen eller mlocate-kommandoen skal du skrive man locate eller man mlocate i et Terminal vindue og trykke Enter. Den samme hjælpeskærm vises for begge kommandoer.

Brug af hvilken kommando

Kommandoen "which" returnerer den absolutte sti til den eksekverbare, der kaldes, når en kommando udstedes. Dette er nyttigt for at finde placeringen af ​​en eksekverbar for at oprette en genvej til programmet på skrivebordet, på et panel eller et andet sted i skrivebordsstyreren. For eksempel skriver du kommandoen, som Firefox viser resultaterne vist i billedet nedenfor.

Som standard viser den kommando kun den første matchende eksekverbare. Hvis du vil vise alle matchende eksekverbare filer, skal du bruge -a indstillingen med kommandoen:

som -a firefox

Du kan søge efter flere eksekverbare filer på én gang, som vist i det følgende billede. Kun de stier, der findes til eksekverbare filer, vises. I eksemplet nedenfor blev kun "ps" eksekverbar fundet.

BEMÆRK: Hvilken kommando søger kun den nuværende brugers PATH-variabel. Hvis du søger efter en eksekverbar fil, der kun er tilgængelig for root-brugeren som en normal bruger, vises der ingen resultater.

For mere information om hvilken kommando, skriv "man som"( uden citaterne) ved kommandoprompten i et Terminal vindue, og tryk på Enter.

Brug af kommandoen Whereis

Kommandoen whereis bruges til at finde ud af, hvor binær-, kilde- og man sidefiler til en kommando er placeret. For eksempel skriver du, hvorvidt Firefox ved prompten viser resultater som vist i det følgende billede.

Hvis du kun vil have stien til den eksekverbare visning, og ikke stierne til kilden og manden( ual) sider, skal du bruge -b-indstillingen. For eksempel vil kommandoen hvor-firefox kun vise /usr/bin/ firefox som resultat. Dette er praktisk, fordi du sandsynligvis søger efter et programs eksekverbare fil oftere, end du ville søge efter kilde- og man pages for det pågældende program. Du kan også søge efter kun kildefilerne( -s) eller kun man-siderne( -m).

For mere information om kommandoen whereis, skriv man hvor i et Terminal vindue og tryk Enter.

Forstå forskellen mellem kommandoen Whereis og hvilken kommando

Kommandoen whereis viser dig placeringen for binære, kilde og man sider for en kommando, hvorimod den kommando kun viser placeringen af ​​binæret for kommandoen.

Varekommandoen søger gennem en liste over specifikke mapper for binære, kilde- og manfiler, hvorimod hvilken kommando søger i de mapper, der er angivet i den aktuelle brugers PATH-miljøvariabel. For varis-kommandoen kan listen over specifikke mapper findes i afsnittet FILES på mandsiderne for kommandoen.

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

Da waaris-kommandoen kun bruger stier, der er hardkodede i kommandoen, kan du ikke altid finde det, du leder efter. Hvis du søger efter et program, som du mener kan installeres i en mappe, der ikke er opført på manssiderne for varis-kommandoen, vil du måske bruge kommandoen med -a mulighed for at finde alle forekomster af kommandoen i hele systemet.