find parancs használata (frissítve)

Találtam több figyelemre méltó cikket a find használatáról angolul. Egy másik, egy harmadik.
Ezekből szemezgetek:

    Keressünk
  • 20 évnél idősebb állományokat keresünk az aktuális könyvtárban így:
    find ./ -mtime +7300
  • az utolsó 3 napban módosított állományokat így:
    find . -mtime -3.
  • az utolsó 3 napban módosított txt állományokat így:
    find . -name '*.txt' -mtime -3
  • 10000 kbytenál nagyobb állományokat így:
    find . -size +10000k
  • rc.conf nevű állomány keresése az aktuális könyvtárban
    find . -name "rc.conf" -print
  • ha megtalálta a find az rc.conf nevű állományt akkor azon végre hajtja a chmod utasítást
    find . -name "rc.conf" -exec chmod o+r '{}' \;
  • komplex keresés ami kihagyja az eredményből a *.v vagy .*.v nevű állományokat. Egy kis extra magyarázat: -not negálást jelent, -o a logikai OR műveletet, \( a logikai művelet kezdetét jelöli, \) pedig a végét. Egyébként a kihagyott állományok egy verzió kezelő állományai...
    find /usr/src -not \( -name "*,v" -o -name ".*,v" \) '{}' \; -print
  • keresés a linuxbox szóra a *.html nevű állományokban, állomány név kiiratás találat esetén.
    find . -name "*.html" -exec grep "linuxbox" '{}' \; -print
  • Keresés az aktuális könyvtárból indulva kis és nagybetű nem figyelembe vételével és kihagyni a .svn nevű könyvtárak tartalmát:
    find . -iname "*old*" -a -not -path "*.svn*" -print
    Itt igazából a -and -or -not keresési feltételek közti logikai művelet megadás lehetősége a légyeg!
  • Keresés az aktuális könyvtárból indulva, csak 1 könyvtár mélységben, 1 hétnél öregebb könyvtárakat visszaadva, majd egyesével töröli. Közben listázza melyiket törli...
    find . -mindepth 1 -maxdepth 1 -type d -mtime +7 -exec rm -fr '{}' \; -print