Fájlkeresés terminálból Linux alatt

A most következő leírásban bemutatom, hogyan tudunk fájlokat keresni Linux terminálját (konzolt) használva, tehát nem grafikus felületről.

A keresést a find nevű programmal tudjuk végrehajtani. A programnak első paraméterként azt kell átadnunk, hogy hol keresünk, majd ezután jönnek a különböző szűkítések.

Ha kiadjuk a find parancsot paraméterek nélkül, akkor az adott mappában (könyvtárban) és az ez alattiakban lévő fájlokat és mappákat listázza ki.

Ha paraméterként csak egy elérési útvonalat adunk meg, akkor az ott és az alatt lévő fájlokat és mappákat listázza ki.

find /home/charlie

Lehetőségünk van több elérési út megadására is, ekkor mindegyikben keresni fog.

find /home/charlie /root

Pár példán keresztül nézzük, milyen paramétereket lehet átadni. a /path mappában keresek itt most.

Üres mappák keresése

find /path -depth -type d -empty

A type értékkel adjuk meg, hogy mappát keresünk. A mappát itt a d betű takarja. A empty paraméterrel pedig megadjuk, hogy üres elemeket keresünk.

Üres fájlok keresése

find /path -depth -type f -empty

Ugyanaz mint mappák esetén, csak itt a type f paramétert kap, ami a fájlokat jelenti.

Fájlnévre keresés

find /path -name '*név*'

A name paraméterben tudjuk átadni, hogy adott fájlnévre, névtöredékre keressen. A joker karakterek használhatóak. Ne felejtsük el idézőjelek közé tenni a fájlnevet!

Adott kiterjesztésű fájl keresése

find /path -name "*.kiterjesztes"

Megadott jogú fájl keresése

find /path -perm -JOGOK

A perm kapcsolóval kereshetünk jogosultság alapján is. Ide a fájl jogokat kell megadni oktálisa, számokkal. Pl. a mindenki által írható fájlok: 666 a mindenki által írható mappák 777

A Linuxos jogosultságokról bővebben itt lehet olvasni.

Megadott kiterjesztésű és megadott jogú fájl keresése

find /path -name '*.kiterjesztes' -perm 644

Természetesen több feltételt is megadhatunk…

Olyan fájlok keresése amik az utolsó N órában lettek módosítva

find /path -mtime n

Ahol N:

  • 0 esetén az utolsó 24 óra
  • 1 esetén az utolsó 48 óra
  • 2 esetén az utolsó 72 óra

Megadott (root) tulajdonosú fájlok keresése

find /path -user root

A user paraméterrel megadhatjuk, hogy a megadott nevű felhasználó tulajdonában lévő fájlokat vagy mappákat keressük.

Keresés eredményeképpen kapott fájlok törlése

find /path -name mytestfile | xargs rm

A find parancs által adott találatokat pipeon keresztül ( | ) átirányíthatjuk az xargs-nak, melynek segítségével műveleteket hajthatunk végre a fájlokkal, mappákkal.

1 hozzászólás


  1. Nagy segítség lehet még a cikket olvasók számára a következő pár szösszenet:

    Üres mappák keresése és törlése:

    find /path -type d -empty -exec rm -rf '{}' \;

    Megkeressük a “.~1~” részletet a file nevében és amelyekben megtaláluk, azokat töröljük:

    find -type f | grep .~1~ | while read dir;do rm "$dir";done

    Minden *.h kiterjesztésű fileban megkeressük a “raoul” szót és kiíratjuk a sor számát ahol megtaláltuk:

    find /path -name "*.h" | grep -n "raoul"

    Remélem hasznos volt!
    Még több linuxos okosság az “ömlesztett jegyzeteim” között: (többnyire angolul)
    http://sites.google.com/site/ikonsnotebook/home

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

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