Weboldal keresés

A „find” parancs használatának módjai a címtárak hatékonyabb kereséséhez


Ez az oktatóanyag végigvezeti Önt a Linuxban található könyvtárak különböző módjain. Amint azt már biztosan tudod, a Linuxban minden fájl, beleértve a könyvtárakat is. És az egyik gyakori dolog, amit a Linux-felhasználók a parancssorban tesznek, az egy fájl vagy könyvtár keresése.

Számos különböző eszköz és segédprogram használható a fájlok keresésére a parancssorban, például a Find, a locate és a which. Az utolsó segédprogramot (amely) azonban csak a parancsok megkeresésére használják.

Ebben az oktatóanyagban elsősorban a kereső segédprogramra összpontosítunk, amely élő Linux fájlrendszeren keres fájlokat, és hatékonyabb és megbízhatóbb, mint a locate.

A locate hátránya, hogy beolvas egy vagy több, az updatedb által létrehozott adatbázist, és nem keres élő fájlrendszeren keresztül. Ezen túlmenően nem nyújt olyan rugalmasságot, hogy honnan lehet keresni (kiindulási pont).

Alább látható a locate parancs futtatásának szintaxisa:

locate [option] [search-pattern]

A locate hátrányának bemutatásához tegyük fel, hogy egy pkg nevű könyvtárat keresünk az aktuális munkakönyvtárban.

Megjegyzés: Az alábbi parancsban a --basename vagy a -b paraméter jelzi a locate<, hogy csak a fájl (könyvtár) alapnevének feleljen meg (ami pontosan pkg), de az elérési útnak (/path/to/pkg) nem. Ahol a \ egy gömbölyű karakter, akkor letiltja a pkg implicit helyettesítését *pkg*-ra.

locate --basename '\pkg'

Amint a fenti parancskimenetből látható, a locate a (/) gyökérkönyvtártól kezdődően keres, ezért a rendszer más, azonos nevű könyvtárakat is egyeztet.

Ezért a probléma megoldásához használja a find funkciót az alábbi egyszerűsített szintaxis követésével:

find starting-point options [expression]

Nézzünk néhány példát.

Ha ugyanazt a (pkg) könyvtárat szeretné megkeresni az aktuális munkakönyvtárban, futtassa a következő parancsot, ahol a -name jelző beolvassa azt a kifejezést, amely ebben az esetben a könyvtár alapneve.

find . -name "pkg"

Ha „Engedély megtagadva” hibákat észlel, használja a sudo parancsot, például:

sudo find . -name "pkg"

Megakadályozhatja, hogy a kereső a könyvtárakon kívül más fájltípusokat keressen, ha a -type kapcsolóval adja meg a fájl típusát (az alábbi parancsban a d könyvtárat jelent) az alábbiak szerint:

sudo find . -type d -name "pkg"

Továbbá, ha a könyvtárat hosszú listázási formátumban szeretné felsorolni, használja a -ls műveletkapcsolót:

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

Ezután a -iname opció lehetővé teszi a kis- és nagybetűk megkülönböztetését nem igénylő keresést:

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

További érdekes és speciális használati információkért olvassa el a keresés és a helymeghatározás kézikönyvoldalait.

man find
man locate

Utolsó megjegyzésként a find parancs megbízhatóbb és hatékonyabb a fájlok (vagy könyvtárak) kereséséhez egy Linux rendszerben, ha a locate parancshoz viszonyítjuk.

Ugyanúgy, mint korábban, ne felejtse el elküldeni nekünk visszajelzését vagy kérdéseit az alábbi megjegyzés részben. Végül mindig maradjon kapcsolatban a Tecminttel.