Ovde su neke od find comandi koje se često koriste na Linuxu, tj koje bar ja često koristim u raznim shell skriptama, većinom za brisanje nekih starih logova, detekcije prevelikih fajlova, arhiviranje i kopiranje fajlova izmenjenjih u neko određeno vreme i slično.

Pretraži fajl koji se zove httpd.conf na celom kompjuteru

find / -type f -name "httpd.conf" 2> /dev/null

Objašnjenje:
find – komanda za pretragu
/ – gde pretražuješ (u ovom slučaju root svih foldera). Pogledati hijerarhiju fajlova na Linuxu
type – tip fajla (f – fajl, d – folder, l – symlink)
name – reč ili deo reči (koristiti asterix) koji se traži
2> /dev/null – greške prilikom pretrage 2> (obično se javljaju kad nemate ovlašćenja da pristupite nekom folderu ili fajlu) šalji u crnu rupu (/dev/null)

Pronadji mi u folderu /tmp ali  ne i podfolderima, sve fajlove koji u nazivu sadrže reč „fraza“ a da su noviji od 25.11.2015 17:00 – i to što nađeš premesti u folder /home/draza

find /tmp/ -maxdepth 1 -newermt "2015-11-25 17:00:00" -type f -name "*fraza*" -exec mv {} /home/draza \;

Objašnjenje:
maxdepth – koliko nivoa u dubinu (podfoldera) da pretrazuje (1 samo current folder bez podfoldera)
newermt – fajl je ranije (newer) menjan (m) od vremena (t) koji se navodi kao argument (u ovom primeru 2015-11-25 17:00:00)
exec – izvrsi komandu nad rezultatima {}

Pronadji mi u folderu /tmp i njegovim podfolderima sve fajlove sa ektenzijom log i da počinju frazom Program a da pri tom fraza „Program“ moze biti bilo kakvim slovima (nije case sensitive), a kojima ništa nije menjano duže od 3 dana i to što nadjes obriši (prvo izlistajte fajlove pokretanjem komande bez dela koji počinje sa -exec da ne biste obrisali nešto što ne treba)

find /tmp -type f -iname "program*.log" -mtime +3 -exec rm {} \;

Objašnjenje (a da izraza nema u gornjem primeru):
iname – isto kao i name ali nebitno da li su slova velika ili mala
mtime – vreme kad je fajl izmenjen je veći od 3 dana (zato +3, da je -3 značilo bi da je fajl izmenjen u poslednja 3 dana)

Pronadji mi sve fajlove u folderu /tmp koje je neko otvarao (vi, grep, cat….) u poslednjih 10 dana, nebitno da li je nešto menjao ili ne

find /tmp/ -type f -atime -10

Objašnjenje:
atime – access time (manje od 10 dana)

Zapakuj mi u neku arhivu sve fajlove u folderu /tmp koji su danas menjani

tar -czvf ../danas_menjani_fajlovi.tar.gz `find /tmp -type f -daystart -ctime -1`

Objašnjenje:
ctime – fajl je promenjen u PRAMETAR*24 sati (u ovom slučaju u poslednjih 24 sata)
daystart – ali od početka današnjeg dana

Pronadji mi sve fajlove iz foldera /tmp koji se ne zovu program.sh

find /tmp -not -name "program.sh"

Objašenjenje:
not (parametar) – provalite sami čemu služi not

Pronadji mi sve fajlove u folderu /tmp koji su noviji od fajla /home/draza/testfajl.txt

find /tmp -newer /home/draza/testfajl.txt

Pronadji mi sve fajlove u folderu u kom se sad nalazim a koji imaju full permisije (777)

find . -type f -perm 0777

Pronađi mi sve fajlove u folderu /tmp sa 777 permisijom, izlistaj ih i promeni im permisiju na 644

find /tmp -type f -perm 0777 -print -exec chmod 644 {} \;

Nadji mi sve fajlove u folderu /tmp kojima je owner draza

find /tmp -user draza

Pronadji mi sve fajlove u folderu /tmp koji su promenjeni u poslednja 2 sata (120 minuta)

find /tmp -mmin -120

Objašenjenje:
mmin – modification time (vreme izmene fajla) je odradđeno u: -120 u poslednjih 120 minuta, 120 pre tačno 120 minuta, +120 pre više od 120 minuta

Daj mi sve fajlove iz foldera /tmp koji su veći od 5 a manji od 10GB

find /tmp -size +5G -size -10G

Pronađi sve špijune u državi – i te koje nađeš obradi da to više ne budu a i ukini im neka prava zbog špijunaže

find /home/srbija -type f -not -user srbija -exec chown srbija {} \; -exec chmod 400 {} \;