Måder at bruge finder kommando til at søge i kataloger mere effektivt


Denne tutorial tager dig gennem de forskellige måder at finde en mappe på Linux. Som du måske allerede ved, når du søger efter en fil eller et bibliotek.

Der er flere forskellige måder og hjælpeprogrammer, der bruges til at søge efter filer på kommandolinjen, såsom find, find og hvilke. Det sidste værktøj (som) bruges dog kun til at finde en kommando.

For omfanget af denne vejledning vil vi primært fokusere på find-værktøjet, der søger filer på et live Linux-filsystem og er mere effektivt og pålideligt sammenlignet med lokalisering.

Ulempen ved lokalisering er, at den læser en eller flere databaser oprettet af updatedb, den søger ikke gennem et live filsystem. Derudover tilbyder det ikke så godt fleksibilitet med hensyn til, hvor man skal søge fra (startpunkt).

Nedenfor er syntaksen til kørsel af lokaliseringskommandoen:

# locate [option] [search-pattern]

For at demonstrere ulempen ved lokalisering, lad os antage, at vi søger efter en mappe med navnet pkg i den aktuelle arbejdsmappe.

Bemærk: I kommandoen nedenfor fortæller indstillingen --basename eller -b lokalisering til kun at matche filens (katalog) basenavn (som er nøjagtigt pkg), men ikke stien (/ sti/til/pkg). Hvor \ er et kugleformet tegn, deaktiverer det den implicitte erstatning af pkg med * pkg *.

$ locate --basename '\pkg'

Som du kan se fra kommandooutputtet ovenfor, søger lokalitet med start fra rodmappen (/), det er derfor, at andre mapper med samme navn matches.

Brug derfor find til at håndtere dette problem ved at følge den forenklede syntaks nedenfor:

$ find starting-point options [expression]

Lad os se på et par eksempler.

For at søge efter den samme mappe (pkg) ovenfor i den aktuelle arbejdsmappe skal du køre følgende kommando, hvor flaget -name læser det udtryk, som i dette tilfælde er bibliotekets basenavn.

$ find . -name "pkg"

Hvis du støder på "Tilladelse nægtet" -fejl, skal du bruge sudo-kommandoen sådan:

$ sudo find . -name "pkg"

Du kan forhindre søgning i at søge efter andre filtyper undtagen mapper ved at bruge -type flag til at specificere filtypen (i kommandoen nedenfor betyder d katalog) som følger:

$ sudo find . -type d -name "pkg"

Desuden, hvis du ønsker at liste biblioteket i et langt listeformat, skal du bruge handlingsomskifteren -ls :

$ sudo find . -type d -name "pkg" -ls

Derefter aktiverer indstillingen -iname en sagfølsom søgning:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 

For at finde mere interessant og avanceret brugsinformation skal du læse mandsiderne for find and find.

$ man find
$ man locate

Som en sidste bemærkning er find-kommandoen mere pålidelig og effektiv til søgning af filer (eller kataloger) i et Linux-system, når den vejes mod lokaliseringskommandoen.

På samme måde som før, glem ikke at sende os din feedback eller spørgsmål via kommentarfeltet nedenfor. Endelig skal du altid være forbundet med Tecmint.