Ez a bemutató arra összpontosít, hogyan lehet fájlokat találni Linuxon a find and the locate paranccsal.

rendszergazdaként nagyon gyakori feladat egy adott fájl keresése a fájlrendszeren.

előfordulhat azonban, hogy néha nehéz megtalálni a fájlokat egy Linux fájlrendszeren, különösen, ha több tucat különböző felhasználója van.

két parancs segít a cél elérésében : megtalálni és megtalálni.,

ebben a bemutatóban látni fogjuk, hogyan lehet ezeket a parancsokat hatékonyan használni, és hogyan lehet hangolni, hogy elérjék azt, amit keresünk.

Tartalomjegyzék

fájlok keresése a

a fájlok megtalálásának és megtalálásának első módja a Linux gazdagépen a keresés parancs használata.,

alapértelmezés szerint a find parancs minden disztribúcióban elérhető, és a következő szintaxissal rendelkezik:

$ find <options> <path> <expression>

gyors tipp: van-e valami problémája az emlékezéssel, ha az útvonal vagy a kifejezés az első?

ne feledje, hogy a grEP a kifejezés útja, a keresés pedig az ellenkezője, tehát az út kifejezés!

a Find egy nagyon erős parancs, mivel sokkal több opcióval rendelkezik, mint a locate parancs.

itt található a find funkció Összes lehetősége Linuxon.,

Find files with find by filename

a find funkció leggyakoribb használata a fájlnevek alapján megadott fájlok keresése.

$ find <path> -name <pattern>

a fájlok keresésekor a keresés és a keresés közötti fő különbség az, hogy a keresés megkeresi a fájlneveket, míg a locate megkeresi a fájl elérési útjait.

például, ha visszatérünk a korábban használt runlevel példához, itt található a runlevel fájlok keresése a find paranccsal.,

$ find / -name runlevel*

mi a “2>/dev /null” rész?

átirányítottam a hibakimenetet a/dev / null-ra a kimeneti átirányítás segítségével, hogy elkerüljük a konzol hibaüzeneteit.

fájlok keresése a find by filetype

mint azt korábban a kemény és puha linkekről szóló cikkünkben tárgyaltuk, a fájlok fájltípusokhoz vannak rendelve, amelyeket megkülönböztetésükre használnak.,

itt található a Linuxon használt összes fájltípus áttekintése.

  • f : a standard file
  • d : A mappa vagy könyvtár
  • l : szimbolikus link vagy soft link
  • b : block eszközök (mint például a merevlemez)
  • c : karakter eszközök (soros portok, hangkártyák)
  • p : named pipe

  • s : socket

ismerve az összes fájltípust, most már kereshet fájlok fájltípusonként a find paranccsal.

$ find <path> -type <filetype>

például, ha a gazdagép összes szimbolikus linkjét keressük, a következő parancsot adnánk ki.,

$ find / -type l

paraméterek kombinálhatók, például ha minden szimbolikus linket Keresek, amelynek fájlnevei véget érnek”.szolgáltatás ” (például az összes systemd szolgáltatás elkülönítéséhez) a következő parancsot futtatom.

fájlok keresése mintával (kiterjesztésekhez)

hasonlóan a lokalizációhoz parancs, képes megtalálni a fájlokat a Linux egy minta.

emlékeztetőül a minta olyan karakterlánc, amely gömbölyű karaktereket tartalmaz (például*,?,, vagy tartományok).

Ez az opció különösen akkor van, ha kiterjesztéssel rendelkező fájlokat próbál megtalálni, például Javascript fájlokat.

fájlok kereséséhez Linuxon egy minta segítségével futtassa a következő parancsot:

$ find <path> -name ".<extension>"
$ find / -name "*.js"

files files on Linux by owner

néha el akarja különíteni egy adott felhasználó által létrehozott fájlokat.

amikor egy felhasználót töröl a gazdagépen, érdemes lehet például törölni a felhasználóhoz társított összes fájlt.,

előfordul, hogy a felhasználók saját könyvtárukból hoznak létre fájlokat, és a felhasználói otthoni könyvtár törlése önmagában nem elegendő.

ennek következtében egy bizonyos felhasználó által létrehozott fájlok megtalálásához Linuxon futtassa a következő parancsot:

$ find <path> -user <user>

például a “john” tulajdonában lévő összes fájl megtalálásához a gazdagépen a következő parancsot futtatnám.

$ find / -user john

most mi van, ha egy egyszerű paranccsal törölni akarom a john tulajdonában lévő összes fájlt?,

Ez könnyen megvalósítható a Törlés zászló.

$ find / -user john -delete

fájlok keresése Linuxon engedélyekkel

A find parancs segítségével megtalálhatja azokat a fájlokat is, amelyek bizonyos engedélyekkel rendelkeznek a gazdagépen.

$ find <path> -perm <permissions>

emlékeztetőül itt található, hogyan működnek a fájlengedélyek Linuxon.

az összes olyan fájl megtalálásához, amely teljes jogosultsággal rendelkezik (a bináris jelölés alapján 777), a következő parancsot futtathatja.,

$ find / -perm 777

nagyon hasznos lehet, ha biztonsági okokból meg akarja vizsgálni, hogy nincs-e fájl konfigurálva a rendszer teljes engedélyével.

keresse meg a fájlokat a find by size

egy nagyon hasznos módja annak, hogy megtalálja a Linuxon található fájlokat, hogy megtalálja a Find parancsot a méret opcióval.

a méret opció lehetővé teszi olyan fájlok keresését, amelyek pontosan a megadott méret, nagyobb, mint egy adott méret vagy alacsonyabb, mint egy adott méret.,

keresni a fájlok mérete, használja a következő parancsot

$ find <path> -size <size>

A méret határozza meg a következő előtagok :

  • c: bájt
  • b: 512 byte-os blokk
  • k: Kilobyte
  • M: Megabájt
  • G: Gigabyte

megadhatja, Hogy egy “+” ha keres fájlokat nagyobb, mint a megadott méretű.,

például, annak érdekében, hogy megtalálják a fájlokat 1 GB-nál nagyobb a rendszer, futtassa a következő parancsot

$ find / -size +1G

fájlok kereséséhez alacsonyabb, mint 10 MBs a rendszer, futtassa a következő parancsot

$ find / -size -10M

Végre, fájlok kereséséhez, amelyek pontosan meghatározott méretű a lekérdezés, nem kell hozzáfűzni bármilyen plusz vagy mínusz előtag a parancs.

$ find / -size 1024k

az éppen definiált parancs minden olyan fájlt megtalál, amely pontosan 1024 Kbs méretű a gazdagépen.,

fájlok keresése Linuxon a módosítási dátum szerint

a keresés segítségével megtalálhatja azokat a fájlokat is, amelyek módosítási dátumot kaptak, friss vagy sem.

Ez a parancs nagyon hasznos, és gyakran használják a rendszergazdák, hogy megtalálja a fájlokat vagy könyvtárakat, amelyek a közelmúltban módosították.

fájlok kereséséhez a keresés módosítási dátum szerint futtassa a következő parancsot:

$ find <path> -mtime <time>

ahol az idő a módosított 24 * <idő> órákkal ezelőtt.

ennek következtében az idő napokban fejeződik ki.,

a méret opcióhoz hasonlóan “plusz” vagy “mínusz” operátort is csatolhat a <idő> napokkal ezelőtt, vagy kevesebb, mint <idő> napokkal ezelőtt.

például a pontosan 3 órával ezelőtt módosított fájlok kereséséhez a következő parancsot kell futtatnia.,

$ find / -mtime 3

ahhoz, Hogy megtalálja módosított fájlokat több, mint egy hete, akkor futtassa a következő parancsot

$ find / -mtime +7

ahhoz, Hogy megtalálja módosított fájlokat kevesebb, mint két nappal ezelőtt, akkor futtassa a következő parancsot

$ find / -mtime -2

Keresés fájlok dinamikus mélység

Mint talán ön is észrevette, hiszen az elején ez a bemutató, adunk példát fájlok keresések kezdve a gyökér könyvtárban.

ennek következtében az összes mappa rekurzívan böngészhető.,

azonban korlátozhatjuk az egyik könyvtárból rekurzívan megtett könyvtárak számát, ezt mélységnek nevezzük.

korlátozni a fájl keresést, hogy egy adott mélység, futtassa a következő lekérdezés

$ find <path> -maxdepth <depth>

például, itt van, hogyan lehet korlátozni a fájlok keresések, hogy az aktuális könyvtárban, gyerekek könyvtárak, hogy böngészett.

$ find / -maxdepth 1

nyilvánvalóan kombinálhatja ezt a parancsot a névjelzővel annak érdekében, hogy egy adott névvel rendelkező fájlokat keressen az aktuális könyvtárban.,

$ find . -maxdepth 1 -name *.tar

Chaining find with-exec

hasznos lehet a keresés parancs láncolása a végrehajtóval.

az exec opció több parancs összekapcsolására használható: az első eredményét a második bemeneteként veszi figyelembe.,

tegyük fel például, hogy az összes fájlt kevesebb mint egy perccel ezelőtt módosítani szeretné

$ find /home/user -mmin -1./file1

most tegyük fel, hogy törölni szeretné az összes olyan fájlt, amelyet kevesebb mint egy perccel ezelőtt módosítottak.

a szintaxis használatával láncolhatja a find parancsot a-exec opcióval.

$ find /home/user -mmin -1 -exec echo rm -f '{}' \;

helyes fájlok.,

Ha készen áll a fájlok törlésére, egyszerűen távolítsa el az echo parancsot.

$ find /home/user -mmin -1 -exec rm -f '{}' \;

fájlok keresése Linuxon a Locate parancs segítségével

a Linuxon található fájlok megtalálásának és megtalálásának másik nagyszerű módja a locate parancs használata.

előfeltételek

Ha a locate parancs nem érhető el a rendszeren, olvassa el a következő részt, hogy keresse meg a rendszeren futó programot.,

A – Locate telepítése APT és RPM alapú disztribúciókra

a locate telepítéséhez sudo jogosultságokra lesz szüksége a Linux gazdagépen.

annak ellenőrzéséhez, hogy a locate telepítve van-e a gazdagépen, futtassa a locate parancsot a parancssorban.,

$ locate

Ha a locate telepítve van a számítógépen, akkor a

ha a locate nincs telepítve a gazdagépen, hibaüzenet jelenik meg

az Ubuntu 18.04 és Debian 10 telepítéséhez futtassa a következő parancsot.,

$ sudo apt-get install mlocate

hasonlóképpen, ha CentOS vagy Fedora alapú disztribúciót használ, futtassa a következő parancsot a locate telepítéséhez.

$ sudo yum install mlocate

b – az mlocate adatbázis frissítése

A locate funkció a fájlrendszeren tárolt helyi adatbázissal működik, amely a gazdagép minden egyes fájlnevét tárolja.

a locate parancs végrehajtásakor a locate az updatedb által készített adatbázisba keresi a keresett fájlt.

időnként egy cron feladat frissíti az mlocate-ot.db fájlt, hogy keresse meg a legújabb bejegyzéseket.,

az adatbázis a/var/lib/mlocate / mlocate / mlocate címen található.a db alapértelmezés szerint az updatedb konfigurációs fájlt az /etc/updatedb fájlban tárolja.conf.

egyelőre elhagyhatja az alapértelmezett beállításokat, és futtathat egy egyszerű updatedb parancsot az adatbázis frissítéséhez.

$ sudo updatedb

keresse meg a

névminta alapján megadott fájlokat a fájlok keresése Linuxon az, hogy mintát adjon a Locate parancsnak.,

alapértelmezés szerint a locate parancs szintaxisa a következő:

$ locate ... ...

Ha egy adott konfigurációs fájlt keres a rendszeren, könnyű megtalálni, hogy teljes fájlnevét megadja a locate parancsnak.

$ locate updatedb.conf

mint látható, a locate parancs visszatér a teljes elérési utat a fájlba I am keresem.,

keresse meg a fájlokat korlátozott könyvtárakban

néha előfordulhat, hogy nem fér hozzá a rendszer egyes könyvtáraihoz.

ennek következtében nem fogja tudni megtalálni a benne található fájlokat.

Vegyünk egy példát egy tiltott mappára, amely egy “korlátozott fájl”nevű fájlt tartalmaz.

a korlátozott könyvtárakban található fájlok megkereséséhez a locate parancsot sudo jogosultságokkal kell futtatnia.,

$ sudo locate restricted-file

a locate paranccsal

a “mintákat” gömbölyű karakterek formájában adhatja meg.

A Globbing karakterek, más néven helyettesítő karakterek, olyan karakterek, amelyeket egy vagy több bejegyzés egy egyszerűsített kifejezéssel való egyeztetésére használnak.

a legnépszerűbb a”*”, amely megfelel minden karakternek, beleértve a egyiket sem.

itt egy összefoglaló táblázat a karakterek és azok funkcióinak leképezésére.,6934f1″>

devdevco, matches one character given in the bracket ab aab, bab cab matches one character from the (locale-dependent) range given in the bracket runlevel runlevel1, runlevel2, runlevel6 runlevels, runlevelo

As an example, here’s a way to locate all text files on your system.,

$ locate *.txt

a fájlok megkeresése a

a Locate hivatalos man oldala, a locate parancs beviteli mintát fogad el.

Ez azt jelenti, hogy képes reguláris kifejezést adni a locate parancsnak.

a regex-ben megadott fájlok megkereséséhez használja a-regex opciót a locate parancshoz.,

$ locate --regex <regex>

például, hogy elkülönítse az összes fájlt kezdve runlevel majd egy számot, akkor futtassa a következő parancsot.

$ locate --regex runlevel+

regexek használatakor van egy fontos pont, amelyről tudnia kell, hogy mikor fájlok keresése.

a locate parancs a fájlok elérési útját keresi a helyi adatbázisban.,

következésképpen a fájlok keresésekor tisztában kell lennie azzal, hogy a reguláris kifejezésnek meg kell egyeznie a fájl elérési útjával, nem pedig a fájl nevével.

például, ha a “Futtatás” – val kezdődő fájlokat keresem, akkor az eredmények nem kerülnek vissza, mivel a fájl elérési útja “/usr” – vel kezdődik.

keresse meg a fájlokat a case érzéketlen opcióval

a fájlrendszeren lévő fájlok keresésekor nem biztos abban, hogy egy adott fájlt hogyan neveztek el.,

nagybetűvel vagy kisbetűvel íródott? Tartalmaz-e egyáltalán nagybetűket?

fájlok megkereséséhez egy eset érzéketlen opció használatával csatolja a-i opciót a locate parancshoz.,

$ locate -i <file_pattern>

fájlok keresése tartalom szerint grep

div id=”bd68e313e1″>

bizonyos esetekben érdekelhet olyan fájlok keresése, amelyek megfelelnek a fájlban található mondatszavaknak.

Ez akkor fordulhat elő, ha például meg akarja találni az adott naplóeseményeket tartalmazó fájlt.,

egy adott szónak megfelelő fájlok keresésének első módja a

$ grep -r <pattern> <path>

Megjegyzés : Ne felejtse el a “-r” opciót, ha teljes könyvtárakon keresztül keres fájlokat.

például., ha az összes olyan fájlt keresi, amelynek tartalmában “hiba” található, a saját könyvtárában, akkor írja be a

$ grep -r error /home/user

bizonyos esetekben előfordulhat, hogy reguláris kifejezést tartalmazó fájlokat szeretne találni.

a reguláris kifejezést használó fájlok megtalálásához használja a”- E ” opciót.,

$ grep -r -E <expression> <path>

mondjuk, például, hogy meg akarja találni a fájl megfelelő az ” abc ” minta a kép, írja be

$ grep -r -E "abc.*" --color /home/user

Megjegyzés : a színes opciót használják, annak érdekében, hogy jelölje ki a gyufát használ a grep parancs.,

olyan fájlok keresése, amelyek segítségével

egy másik nagyszerű módja a fájlok megtalálásának a Linuxon a melyik parancsot kell használni.

A melyik parancsot használják egy adott parancshoz társított fájlok megkereséséhez.

Ez nagyon hasznos lehet, ha nem tudja, hol tárolja a binárisokat egy parancshoz, vagy ha meg kell találnia egy parancsot annak érdekében, hogy hozzáadja az útvonalához.,

$ which <command>

például az” ls”parancshoz társított fájlok kereséséhez írja be a

$ which ls/usr/bin/ls

mint látható, megkapja a fájl teljes elérési útját.

keresse binárisok segítségével whereis

hasonlóképpen, ez teljesen lehetséges, hogy keressen fájlokat a whereis parancs.

a ” whereis “parancs a” melyik “parancs szuperkészletének tekinthető:” whereis ” információt nyújt a parancs nevéről, a fájl helyéről, valamint a kézi oldalak helyéről.,

a whereis végrehajtásához egyszerűen írja be a “whereis” parancsot, majd csatolja a parancs nevét.

$ whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

nagyon praktikus!

következtetés

a mai bemutatóban megtanultad, hogyan lehet megtalálni és megtalálni a fájlokat Linuxon két fontos parancs segítségével: keresse meg és keresse meg.

még akkor is, ha az opciót külön-külön mutatták be, ne feledje, hogy kombinálhatók annak érdekében, hogy még többet lehessen megadni a keresett fájlokat.

mint mindig, ha érdekli a Linux rendszer adminisztrációja, weboldalunkon van egy teljes, a Linuxra szentelt szakasz.,

As always, here is a short video on the subject in case you prefer Youtube videos.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük