Fájlok és mappák keresése Linux alatt a parancssor használatával

A legtöbb ember grafikus fájlkezelővel keres fájlokat Linux alatt, például a Nautilus a Gnome-ban, a Dolphin a KDE-ben és a Thunar az Xfce-ben. A parancssor használatával azonban többféle módon lehet fájlokat keresni a Linuxban, függetlenül attól, hogy milyen asztali kezelőt használ.

A Keresés parancs használata

A „find” paranccsal olyan fájlokat kereshet, amelyeknek ismeri a hozzávetőleges fájlneveket. A parancs legegyszerűbb formája fájlokat keres az aktuális könyvtárban és rekurzívan a mellékelt keresési feltételeknek megfelelő alkönyvtárakon keresztül. Fájlokat kereshet név, tulajdonos, csoport, típus, engedélyek, dátum és egyéb szempontok szerint.

A parancssorba beírva a következő parancsot felsorolja az aktuális könyvtárban található összes fájlt.

megtalálja .

A „keresés” utáni pont az aktuális könyvtárat jelöli.

Egy -nameargumentumnak megfelelő fájlok kereséséhez használja az argumentumot. Használhat fájlnév metakaraktereket (például *), de vagy elé kell helyeznie egy escape karaktert ( \), vagy idézőjelekbe kell foglalnia őket.

Például, ha az összes „pro” betűvel kezdődő fájlt meg akarjuk találni a Documents könyvtárban, akkor a cd Documents/paranccsal válthatunk a Documents könyvtárra, majd írjuk be a következő parancsot:

megtalálja . -name pro \ *

Az aktuális könyvtár „pro” betűvel kezdődő összes fájlja felsorolásra kerül.

MEGJEGYZÉS: A find parancs alapértelmezés szerint kis- és nagybetű érzékeny. Ha azt szeretné, hogy egy szó vagy kifejezés keresése ne legyen különbség a kis- és nagybetűk között, használja a -inameopciót a find paranccsal. Ez a -nameparancs kis- és nagybetűk nélküli változata .

Ha findnem talál a feltételeknek megfelelő fájlokat, akkor nem hoz létre kimenetet.

A find parancsnak számos lehetősége van a keresés finomítására. A find paranccsal kapcsolatos további információkért futtassa man find  a Terminal ablakot, és nyomja meg az Enter billentyűt.

A Locate parancs használata

A locate parancs gyorsabb, mint a find parancs, mert egy korábban felépített adatbázist használ, míg a find parancs a valódi rendszerben keres, az összes tényleges könyvtár és fájl segítségével. A locate parancs a megadott karaktercsoportot tartalmazó összes útvonalnév listáját adja vissza.

Az adatbázist rendszeresen frissítik a cron-tól, de bármikor saját maga is frissítheti, így naprakész eredményeket kaphat. Ehhez írja be a következő parancsot a parancssorba:

sudo updatedb

Adja meg jelszavát, amikor a rendszer kéri.

A locate parancs alapvető formája megtalálja a fájlrendszer összes, a gyökérből kiinduló fájlját, amelyek a keresési feltételeket részben vagy egészben tartalmazzák.

keresse meg a mydata-t

Például a fenti parancs két „mydata” és egy „data” fájlt talált.

Ha meg akarja találni az összes fájlt vagy könyvtárat, amelyek pontosan és csak a keresési feltételeket tartalmazzák, használja az -bopciót a locate paranccsal az alábbiak szerint.

keresse meg -b '\ mydata'

A fenti parancs visszavágása egy hamisító karakter, amely lehetőséget nyújt a helyettesítő karakterek kibővítésére egy nem specifikus fájlnévben meghatározott fájlnevek halmazává. A helyettesítő karakter egy szimbólum, amelyet egy vagy több karakterrel lehet helyettesíteni a kifejezés kiértékelésekor. A leggyakoribb helyettesítő szimbólumok a kérdőjel ( ?), amely egyetlen karaktert jelöl, és a csillag ( *), amely egybefüggő karakterláncot jelent. A fenti példában a visszavágás letiltja a „mydata” implicit cseréjét „* mydata *” -ra, így végül csak a „mydata” -ot tartalmazó eredményeket kapja.

Az mlocate parancs a locate új megvalósítása. Ez indexeli a teljes fájlrendszert, de a keresési eredmények csak azokat a fájlokat tartalmazzák, amelyekhez az aktuális felhasználó hozzáfér. Az mlocate adatbázis frissítésekor az időbélyegző információkat tárolja az adatbázisban. Ez lehetővé teszi a mlocate számára, hogy megtudja, megváltozott-e egy könyvtár tartalma a tartalom újbóli elolvasása nélkül, és gyorsabbá és kevésbé igényessé teszi az adatbázis frissítését a merevlemezen.

Az mlocate telepítésekor az / usr / bin / locate bináris fájl az mlocate-re mutat. Az mlocate telepítéséhez, ha még nem szerepel a Linux disztribúciójában, írja be a következő parancsot a parancssorba.

sudo apt-get install mlocate

MEGJEGYZÉS: A cikk későbbi részében bemutatunk egy parancsot, amely lehetővé teszi annak meghatározását, hogy hol található egy parancs futtatható fájlja, ha létezik.

Az mlocate parancs nem ugyanazt az adatbázisfájlt használja, mint a szokásos locate parancs. Ezért érdemes manuálisan létrehozni az adatbázist a következő parancs beírásával a parancssorba:

sudo /etc/cron.daily/mlocate

Az mlocate parancs addig nem fog működni, amíg az adatbázist manuálisan nem hozzák létre, vagy amikor a szkriptet a cronból futtatják.

Ha többet szeretne megtudni a locate vagy az mlocate parancsról, írja be a man locatevagy man mlocate  a Terminal ablakba, és nyomja meg az Enter billentyűt. Ugyanaz a súgó képernyő jelenik meg mindkét parancsnál.

A Melyik parancs használatával

A „melyik” parancs a futtatható fájl abszolút elérési útját adja vissza, amelyet a parancs kiadásakor hívnak meg. Ez akkor hasznos, ha megtaláljuk a futtatható fájl helyét a program parancsikonjának létrehozásához az asztalon, egy panelen vagy az asztalkezelő más helyén. Például a parancs beírásával az which firefox alábbi képen látható eredmények jelennek meg.

Alapértelmezés szerint a melyik parancs csak az első megfelelő futtatható fájlt jeleníti meg. Az összes megfelelő futtatható fájl megjelenítéséhez használja -aa következő parancsot:

amely -a Firefox

Több futtatható fájlra is rákereshet egyszerre a következő képen látható módon. Csak a megtalált futtatható fájlok elérési útjai jelennek meg. Az alábbi példában csak a „ps” futtatható fájl található.

MEGJEGYZÉS: A melyik parancs csak az aktuális felhasználó PATH változójában keres. Ha olyan futtatható fájlt keres, amely csak normál felhasználóként érhető el a root felhasználó számára, akkor nem jelennek meg eredmények.

A melyik paranccsal kapcsolatos további információkért írja be a terminál ablakba a parancssorba az „man which” szót (idézőjelek nélkül), majd nyomja meg az Enter billentyűt.

A Whereis parancs használata

A whereis paranccsal megtudhatjuk, hol találhatók a parancs bináris, forrás és man oldalfájljai. Például, ha whereis firefox a parancssorba gépel , a következő képen látható eredményeket jeleníti meg.

Ha azt szeretné, hogy csak a futtatható fájl elérési útja jelenjen meg, és ne a forrás és a man (ual) oldalak elérési útja jelenjen meg, használja az -bopciót. Például a parancs whereis -b firefoxcsak /usr/bin/firefoxeredményként jelenik meg. Ez azért hasznos, mert nagy valószínűséggel gyakrabban fog keresni egy program futtatható fájlját, mint az adott program forrás- és man oldalai. Kereshet csak a forrásfájlokra ( -s) vagy csak a man oldalakra ( -m).

Ha többet szeretne tudni a whereis parancsról, írja man whereis be a Terminal ablakot, és nyomja meg az Enter billentyűt.

A Whereis parancs és a melyik parancs közötti különbség megértése

A whereis parancs megmutatja a parancs bináris, forrás és man oldalainak helyét, míg a melyik parancs csak a bináris helyét mutatja.

A whereis parancs a bináris, a forrás és a man fájlok speciális könyvtárainak listáján keres, míg a melyik parancs az aktuális felhasználó PATH környezeti változójában felsorolt ​​könyvtárakat keresi. A whereis parancsnál a konkrét könyvtárak listája megtalálható a parancs man oldalainak FÁJLOK szakaszában.

Amikor az alapértelmezés szerint megjelenített eredményekről van szó, a whereis parancs mindent megjelenít, míg a melyik csak az első megtalált futtathatót jeleníti meg. Ezt megváltoztathatja a -akorábban leírt opcióval, amelyik parancshoz.

Mivel a whereis parancs csak a parancsba keményen kódolt útvonalakat használ, nem biztos, hogy mindig megtalálja azt, amit keres. Ha olyan programot keres, amelyről úgy gondolja, hogy egy olyan könyvtárba van telepítve, amely nincs felsorolva a whois parancs man oldalain, akkor érdemes használni a melyik parancsot, -ahogy megtalálja a parancs összes előfordulását a rendszerben.