Bevezetés
hol van
keresse meg
melyik
típus
megtalálja
Bevezetés
Öt fájlkereső parancs létezik Linuxon: whereis, locate, which, type, és find. Mindegyiknek megvannak a saját jellemzői, és bizonyos keresési forgatókönyvekhez készültek. Ez az útmutató bemutatja az egyes parancsokat, és bemutatja a használati példákat. E parancsok további olvasásához a legjobb, ha áttekinti a megfelelő kézikönyvet.
whereis
A whereisparanccsal a bináris fájlokban, a forráskódban és az online kézikönyvoldalakon kereshet több szabványos telepítési könyvtárban bármely megadott programnévre.
Mivel whereisnem keres a rendszer minden helyén, az ezekből a konkrét könyvtárakból származó fájlok nem találhatók meg. Ugyanezen okból gyorsan megkapja a keresési eredményt, akár megtalálta, akár nem.
Ezenkívül nem keresi azokat a parancsokat, amelyek közvetlenül a shellbe vannak beépítve.
Például, ha információt szeretne találni a lsparancsról, futtassa a következő parancsot a terminálon:
whereis ls
Néhány visszajelzést kapsz, például:
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Az eredmény /bin/lsa megkeresni kívánt bináris fájl, a másik kettő pedig a lsprogram kézikönyve, a program forráskódja lsnem található.
Másolja a /bin/lsfájlt a saját könyvtárába és a /usr/binkönyvtárba, majd futtassa whereisújra a parancsot:
cp /bin/ls ~
cp /bin/ls /usr/bin/ls
whereis ls
Amint látja, a keresési eredmények között csak a /bin/lsés /usr/bin/lstalálhatók. A lssaját könyvtárában található program nem található, mert a saját könyvtára nem tartozik a szabványos telepítési könyvtárak közé.
ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Ha a következő parancsot futtatja:
whereis cd
Az alábbi sorhoz hasonló kimenetet fog látni. A rendszer nem talált bináris fájlt, mert cdez a shell beépített parancsa.
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
locate
A locateparanccsal egy adatbázis ( /var/lib/mlocate/mlocate.db) segítségével név szerint kereshetünk fájlokat . Ez az adatbázis alapvetően a fájlrendszer elrendezésének pillanatképe. Az adatbázisban található minden olyan rekord, amely megfelel a lekérdezésének, megjelenik a keresési eredmények között. Alapértelmezés szerint a locateparancs a lekérdezést használja az egyes rekordok teljes nevének bármely részének egyeztetésére, beleértve az elérési utat is. Emiatt a keresési eredményekben található egyező fájlok száma meghaladja a vártnál.
Ahogy az adatbázis elavulttá válik, a locateparancs keresési eredménye kevésbé lesz pontos. Előfordulhat, hogy olyan fájlokat vesz észre, amelyek már nem léteznek, vagy nem fog találkozni az újonnan létrehozott fájlokkal. Alapértelmezés szerint az mlocate.dbadatbázis naponta egyszer automatikusan frissül. A updatedbparancs segítségével manuálisan frissítheti.
Mivel a keresés a fájlrendszer helyett az adatbázisban történik, a keresési sebesség nagyon gyors.
Ha a következő parancsot futtatja:
locate ls
Sok rekordot fog kapni a várt eredmény helyett.
A keresési eredmény pontosabbá tétele érdekében a -bzászlóval korlátozhatja a keresési tartományt úgy, hogy a lekérdezést csak az egyes rekordok alapnevére egyeztesse:
locate -b "\ls"
Ezúttal minden egyes fájl helyét pontosan megkapja a lsfájlrendszerében:
/bin/ls
which
A whichparancs megkeresi a környezeti változó értékében megadott parancsot, PATHés alapértelmezés szerint az első eredményt adja vissza. Ha álnevet kérdez le, a whichparancs a keresés végrehajtása előtt meghatározza az álnév tényleges parancsát.
A whichparancs egyszerűsége miatt is nagyon gyors.
A whichparancs használata egyszerű:
which your_command
Ha az összes egyező parancsot szeretné megjeleníteni az első helyett, használja a -azászlót:
which -a your_command
Íme egy példa egy álnévvel ellátott parancs keresésére:
which ll
A keresés eredménye a következő lenne:
alias ll='ls -l --color=auto'
/bin/ls
type
Alapértelmezés szerint a typeparancs jelzi, hogy a parancs neve hogyan értelmezhető. A lehetséges eredmények közé tartozik egy álnév, egy kulcsszó, egy függvény, egy beépített vagy egy fájl. Csakúgy, mint a whereisparancs, a typeparancs csak több szabványos telepítési könyvtárban keres a lekérdezés megválaszolásához.
Néhány példa a különböző parancsok beírására:
Egy shell beépített parancs:
type cd
cd is a shell builtin
Egy bináris fájl a fájlrendszeren:
type sudo
sudo is /usr/bin/sudo
Egy álnév:
type ls
ls is aliased to `ls --color=auto'
find
Az oktatóanyagban bemutatott öt fájlkereső parancs közül ez a findparancs a legerősebb. Ez is a leglassabb. A másik négy paranccsal ellentétben a findparancs valójában a teljes fájlrendszeren keresi a fájlt, egy i-csomópontonként. A findparanccsal kifinomult lekérdezési feltételekkel megtalálhatja az összes szükséges fájlt, és még további műveleteket is végrehajthat a talált fájlokon.
A findparancs keresési feltételei túl bonyolultak ahhoz, hogy egy ilyen rövid cikkben elmagyarázzuk, íme néhány példa.
A findparancs alapvető formátuma :
find [path] [option] [action]
A munkakönyvtárban és annak összes alkönyvtárában lévő összes fájl megkereséséhez:
find
A aaasaját könyvtárában és annak összes alkönyvtárában megnevezett fájl megkereséséhez :
find ~ -name 'aaa'
A fájlrendszerben az elmúlt 24 órában módosított összes fájl megkereséséhez:
find / -mtime 0
A webkönyvtárban és annak összes alkönyvtárában lévő összes fájl megkereséséhez, amelyek a felhasználóhoz tartoznak nginx:
find /usr/share/nginx/html/ -user nginx
A munkakönyvtárban lévő összes olyan fájl megkereséséhez, amelynek engedélyei a következők 0744:
find -perm -0744
Egy ilyen nevű fájl megkereséséhez aaaa munkakönyvtárban és részletes információinak felsorolásához:
find -name 'aaa' -exec ls -l {} \;