Android

Hogyan lehet fájlokat találni a linuxban a parancssor használatával

Howto install Ambari on Ubuntu

Howto install Ambari on Ubuntu

Tartalomjegyzék:

Anonim

A find parancs az egyik legerősebb eszköz a Linux rendszergazdák arzenáljában. Fájlokat és könyvtárakat keres egy könyvtárszerkezetben, a felhasználó által megadott kifejezés alapján, és minden egyes egyező fájlban végrehajthatja a felhasználó által megadott műveletet.

A find paranccsal fájlokat és könyvtárakat kereshet engedélyek, típus, dátum, tulajdonjog, méret és egyebek alapján. Más szerszámokkal, például grep vagy sed rel kombinálva is használható.

A Linux find Parancs szintaxist

A find parancs általános szintaxisa a következő:

find

  • Az options attribútum vezérli a szimbolikus hivatkozások kezelését, a hibakeresési beállításokat és az optimalizálási módszert. Az path… attribútum meghatározza a kezdő könyvtárat vagy könyvtárakat, ahol a find megkeresi a fájlokat. Az expression attribútum opciókból, keresési mintákból és az operátorok által elválasztott tevékenységek.

A könyvtárban lévő fájlok kereséséhez a find parancsot felhívó felhasználónak olvasási jogosultsággal kell rendelkeznie a könyvtárban.

Vessen egy pillantást a következő példára:

find -L /var/www -name "*.js"

  • Az -L (options) opció megmutatja a find parancsnak, hogy kövesse a szimbolikus hivatkozásokat. A /var/www (elérési út…) megadja a keresendő könyvtárat. Az (kifejezés) -name "*.js utasítja a keresést a fájlok keresésére, amelyek végződése: .js (JavaScript fájlok).

Keressen fájlokat név szerint

A fájlok név szerinti keresése valószínűleg a Find parancs leggyakoribb használata. Ahhoz, hogy egy fájlt név szerint használjon, a -name opció követi a keresett fájl nevét.

Például a document.pdf nevű fájl kereséséhez a /home/linuxize könyvtárban a következő parancsot használja:

find /home/linuxize -type f -name document.pdf

A kis- és nagybetűk közötti -iname keresés futtatásához módosítsa a -name beállítást a -iname :

find /home/linuxize -type f -iname document.pdf

A fenti parancs megegyezik a „Document.pdf”, „DOCUMENT.pdf”..etc paranccsal.

Fájlok keresése kiterjesztés alapján

A fájlok kiterjesztéssel történő keresése megegyezik a fájlok név szerinti keresésével. Például az .log.gz vel végződő összes fájl megtalálásához a /var/log/nginx könyvtárban használhatja:

find /var/log/nginx -type f -name '*.log.gz'

Fontos megemlíteni, hogy a helyettesítő karakter használatakor vagy idéznie kell a mintát, vagy el kell hagynia a csillag * szimbólumot a fordulójelvel \ , hogy azt a héj ne értelmezze.

Az összes olyan fájl megtalálásához, amely nem felel meg a regex *.log.gz , használhatja a *.log.gz opciót. Például az összes olyan fájl megtalálásához, amely nem ér véget a *.log.gz , akkor használja:

find /var/log/nginx -type f -not -name '*.log.gz'

Fájlok keresése típus szerint

Előfordulhat, hogy bizonyos fájltípusokat, például normál fájlokat, könyvtárakat vagy hivatkozásokat kell keresnie. Linux alatt minden fájl.

A fájlok típusuk alapján történő kereséséhez használja a -type opciót és a következő leírók egyikét a fájltípus megadásához:

  • f : normál fájl d : könyvtár l : szimbolikus link c : karakterkészülékek b : blokkoló eszközök p : nevezett cső (FIFO) s : aljzat

Például az összes könyvtár megtalálásához az aktuális működő könyvtárban az alábbiakat használhatja:

find. -type d

Általános példa az, ha a chmod parancs segítségével a webhely fájljogosultságait 644 , a könyvtári engedélyeket pedig 755 re változtatjuk:

find /var/www/my_website -type d -exec chmod 0755 {} ; find /var/www/my_website -type f -exec chmod 0644 {} ;

Keressen fájlokat méret szerint

A fájloknak a fájlméret alapján történő megkereséséhez adja át a -size paramétert a -size együtt. A következő utótagokkal adhatja meg a fájl méretét:

  • b : 512 bájt blokkok (alapértelmezés) c : bájt w : kétbájtos szavak k : kilobájt M : megabájt G : gigabájt

A következő parancs megtalálja az összes fájlt, pontosan 1024 bájtot a /tmp könyvtárban:

find /tmp -type f -size 1024c

A find parancs lehetővé teszi a megadott méretnél nagyobb vagy annál kisebb fájlok keresését is.

A következő példában az összes fájlt keressük, amely kevesebb, mint 1MB , az aktuális munkakönyvtárban. Vegye figyelembe a mínusz szimbólumot a méretérték előtt:

find. -type f -size -1M

find. -type f -size +1M

Még egy fájltartományban is kereshet fájlokat. A következő parancs megtalálja az összes fájlt 1 és 2MB :

find. -type f -size +1M -size 21M

Fájlok keresése módosítási dátum szerint

A find parancs fájlokat is kereshet a legutóbbi módosítási, hozzáférési vagy változási idő alapján.

Ugyanaz, mint a méret alapján történő kereséskor, használja a plusz és a mínusz szimbólumokat a „nagyobb mint” vagy „kevesebb mint” kifejezésre.

Tegyük fel, hogy néhány nappal ezelőtt módosította az egyik dovecot konfigurációs fájlt, de elfelejtette melyiket. Az /etc/dovecot/conf.d könyvtárban található fájlok egyszerűen kiszűrhetők .conf /etc/dovecot/conf.d végződő és az elmúlt öt napban az alábbiakkal módosított fájlokkal:

find /etc/dovecot/conf.d -name "*.conf" -mtime 5

Itt található még egy példa a fájlok szűrésére a módosítási dátum alapján a -daystart opcióval. Az alábbi parancs felsorolja a /home könyvtár összes fájlját, amelyet legalább 30 nappal ezelőtt módosítottak:

find /home -mtime +30 -daystart

Fájlok keresése engedélyek szerint

A -perm opció lehetővé teszi a fájlok keresését a fájljogosultságok alapján.

Például, ha az összes fájlt pontosan 775 engedéllyel szeretné megtekinteni a /var/www/html könyvtárban, akkor a következőt fogja használni:

find /var/www/html -perm 644

A numerikus módot előtaggal megadhatja a mínusz - vagy a perjel / .

Ha perjel / előtagot használ, akkor legalább egy kategóriának (felhasználó, csoport vagy más) legalább a megfelelő bitkészletnek meg kell lennie a fájl egyezéséhez.

Fontolja meg a következő példa parancsot:

find. -perm /444

A fenti parancs megegyezik az összes fájl olvasási jogosultságával, amely felhasználói, csoport vagy mások számára van beállítva.

Ha mínusz - használják előtagként, akkor a fájlnak legalább a megadott bitnek megfelelőnek kell lennie. A következő parancs olyan fájlokat fog keresni, amelyek olvasási és írási engedélyt adnak a tulajdonosnak és a csoportnak, és amelyeket más felhasználók olvashatnak:

find. -perm -664

Keressen fájlokat a tulajdonos szerint

Egy-egy felhasználó vagy csoport tulajdonában lévő fájlok megtalálásához használja a -user és -group opciókat.

Például, ha a felhasználó tulajdonában lévő összes fájlt és könyvtárat linuxize szeretné, akkor futtassa:

find / -user linuxize

Itt egy valós példa. Tegyük fel, hogy meg akarja találni a www-data felhasználó tulajdonában lévő összes fájlt, és megváltoztathatja az egyeztetett fájlok tulajdonjogát a www-data ról nginx :

find / -user www-data -type f -exec chown nginx {} ;

Fájlok keresése és törlése

Az összes megfelelő fájl törléséhez csatolja a -delete opciót a mérkőzés kifejezés végéhez.

Győződjön meg arról, hogy csak ezt a lehetőséget használja, ha biztos abban, hogy az eredmény megegyezik a törölni kívánt fájlokkal. Mindig érdemes kinyomtatni a megfelelő fájlokat a -delete opció használata előtt.

Például az .temp véget érő összes fájl törléséhez a /var/log/ .temp :

find /var/log/ -name `*.temp` -delete Használja a -delete opciót nagyon óvatosan. A find parancssort kifejezésként értékelik, és ha előbb hozzáadja a -delete opciót, akkor a parancs mindent töröl a megadott kiindulási pontok alatt.

A könyvtárak esetében a find csak az rmdir azonos üres könyvtárakat törölheti.

Következtetés

Megmutattuk, hogyan kell használni a find parancsot a különféle lehetőségekkel és kritériumokkal.

A cikknek alapvető ismereteket kell adnia arról, hogyan lehet fájlokat megtalálni a Linux rendszereken. Látogasson el a find man oldalra is, és olvassa el a find parancs minden egyéb hatékony opcióját.

terminál keresése