Wijzen om ‘vinden’-opdracht te gebruiken voor efficiëntere mapzoekreacties

Deze handleiding zal je door de verschillende manieren leiden om een directory te vinden in Linux. Zoals je misschien al weet, is in Linux alles een bestand, inclusief directories. En een van de gebruikelijke dingen die een Linux-gebruiker zal doen in de commandoregel is het zoeken naar een bestand of een directory.

Er zijn verschillende middelen en hulpprogramma’s die worden gebruikt voor het zoeken naar bestanden op de commandoregel, zoals find, locate en which. Echter, het laatste hulpprogramma (which) wordt alleen gebruikt voor het lokaliseren van een opdracht.

Voor het doel van deze handleiding zullen we ons voornamelijk richten op het find hulpprogramma, dat bestanden zoekt op een live Linux-bestandssysteem en efficiënter en betrouwbaarder is in vergelijking met locate.

Het nadeel van locate is dat het een of meer databases leest die zijn gemaakt door updatedb, het doorzoekt geen live bestandssysteem. Bovendien biedt het ook geen flexibiliteit met betrekking tot waar te zoeken (startpunt).

Hieronder staat de syntaxis voor het uitvoeren van het locate commando:

# locate [option] [search-pattern]

Om het nadeel van locate te demonstreren, laten we aannemen dat we op zoek zijn naar een map genaamd pkg in de huidige werkmap.

Opmerking: In de onderstaande opdracht vertelt de optie --basename of -b locate om alleen de bestandsnaam (map) te matchen (die precies pkg is), maar niet het pad (/pad/naar/pkg). Waar \ een globbing-teken is, schakelt het de impliciete vervanging van pkg door *pkg* uit.

$ locate --basename '\pkg'
Find Directory Using locate Command

Zoals u kunt zien aan de uitvoer van de opdracht hierboven, zal locate zoeken vanaf de root (/) map, daarom worden andere mappen met dezelfde naam gematcht.

Om dit probleem aan te pakken, gebruik find door de vereenvoudigde syntaxis hieronder te volgen:

$ find starting-point options [expression]

Laten we eens naar een paar voorbeelden kijken.

Om dezelfde map (pkg) als hierboven te zoeken, binnen de huidige werkmap, voer de volgende opdracht uit, waarbij de -name vlag de expressie leest die in dit geval de mapnaam is.

$ find . -name "pkg"

Als u “Toestemming geweigerd” fouten tegenkomt, gebruik sudo opdracht zo:

$ sudo find . -name "pkg"
Search a Directory Using find Command

U kunt voorkomen dat find zoekt naar andere bestandstypen dan mappen door de -type-vlag te gebruiken om het bestandstype te specificeren (in de onderstaande opdracht betekent d map) als volgt:

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

Bovendien, als u de map wilt weergeven in een lange lijstindeling, gebruik dan de actieschakelaar -ls:

$ sudo find . -type d -name "pkg" -ls
Find and List Directory

Vervolgens zal de optie -iname een hoofdletteronafhankelijke zoekopdracht mogelijk maken:

$ sudo find . -type d -iname "pkg" 
$ sudo find . -type d -iname "PKG" 
Find Directory with Case Sensitive

Om meer interessante en geavanceerde gebruiksinformatie te vinden, lees de man-pagina’s van find en locate.

$ man find
$ man locate

Als laatste opmerking is het find-commando betrouwbaarder en efficiënter voor het zoeken van bestanden (of mappen) in een Linux-systeem in vergelijking met het locate-commando.

Op dezelfde manier als eerder, vergeet niet om ons uw feedback of vragen te sturen via het opmerkingenveld hieronder. Blijf tot slot altijd verbonden met Tecmint.

Source:
https://www.tecmint.com/find-directory-in-linux/