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

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

    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

    Kommandoen "find" giver dig mulighed for at 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.

    Hvis du skriver følgende kommando ved prompten, vises alle filer, der findes i den aktuelle mappe.

    finde .

    Prikken efter "find" angiver den aktuelle mappe.

    For at finde filer, der matcher et bestemt mønster, skal du bruge -navn argument. Du kan bruge filnavnet metakaracters (f.eks * ), men du bør enten sætte en flugt karakter ( \ ) foran hver af dem eller vedlægge dem i citater.

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

    finde . -navn pro \ *

    Alle filer i den aktuelle mappe, der starter 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ældig, skal du bruge -iname mulighed med find-kommandoen. Det er tilfældet ufølsom version af -navn kommando.

    Hvis finde Find ikke nogen filer, der matcher dine kriterier, det producerer ingen output.

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

    Brug af lokaliseringskommandoen

    Find-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 prompten:

    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.

    Find mydata

    For eksempel 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 mulighed med lokaliseringskommandoen som følger.

    find -b '\ mydata'

    Baggrunden i ovenstående kommando er et globbing-tegn, som giver mulighed for at udvide wildcard-tegn i et ikke-specifikt filnavn til et sæt specifikke filnavne. Et wildcard er et symbol, som 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 / locate 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 installer mlocate

    BEMÆRK: Vi viser dig en kommando senere i denne artikel, som 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 kommandoen lokalisere eller mlocate, skriv mand finde eller mand mlocate  i et Terminal vindue og tryk Enter. Den samme hjælpeskærm vises for begge kommandoer.

    Brug af hvilken kommando

    Kommandoen "hvilken" returnerer den absolutte sti for 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 hvilken firefox viser resultaterne vist i billedet nedenfor.

    Som standard viser den kommando kun den første matchende eksekverbare. For at vise alle matchende eksekverbare filer, brug --en mulighed med kommandoen:

    som-en 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 rodbrugeren 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 Enter.

    Brug af kommandoen Whereis

    Waaris-kommandoen bruges til at finde ud af, hvor binær-, kilde- og man-sidefiler til en kommando er placeret. For eksempel skriver du hvor er firefox ved prompten vises 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 mulighed. F.eks. Kommandoen whereis -b firefox vil 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 mandens sider ( -m ).

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

    Forstå forskellen mellem kommandoen der er og hvilken kommando

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

    Waaris-kommandoen søger gennem en liste over specifikke mapper for binær-, kilde- og manfilerne, mens den kommando, der søges 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 --en mulighed, diskuteret tidligere, for hvilken kommando.

    Fordi hereis-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 tror kan installeres i en mappe, der ikke er angivet på manssiderne for whereis-kommandoen, vil du måske bruge den kommando med --en mulighed for at finde alle forekomster af kommandoen i hele systemet.