IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Contingut

Sintaxi

L'ordre find permet cercar fitxers per múltiples criteris.

$ find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

El més habitual:

$ find path expression

On path és el camí a partir del qual cercar un fitxer i expression ens permet indicar els criteris de la cerca.

Opcions

  • no seguir enllaços simbòlics mai (-P): Quan find examina o mostra informació d'un fitxer i el fitxer és un enllaç simbòlic, la informació s'agafarà de les propietat del fitxer enllaç i no pas de l'original . Comportament per defecte.
  • (-L): Seguir els enllaços simbòlics.
  • No seguir enllaços simbòlics (-H) a la cerca: Però si que es segueixen als paràmetres indicats a l'ordre.
  • Opcions de depuració (-D): Serveix per conèixer els detalls operacionals de l'ordre find.
  • Indicar el nivell d'optimització (-O)

Exemples

Mostrar tots els fitxers recursivament

$ find .

Mostra tots els fitxers del directori de treball (.) i subcarpetes. És equivalent a:

$ find . -print

Buscar qualsevol tipus de fitxer pel seu nom

$ find / -name nom_fitxer
NOTA: Si es vol buscar el fitxer a tot el sistema i no voleu tenir problemes amb els fitxers als qual no teniu permisos de lectura heu d'executar l'ordre com a 
superusuari

Buscar una carpeta pel seu nom

$ sudo find / -type d -name nom_carpeta

Buscar només fitxers pel seu nom

$ sudo find / -type f -name nom_carpeta

Buscar només en un nivell de profunditat

Per exemple, per mostra les carpetes del directori arrel:

$ find / -maxdepth 1 -type d

Mostrar la informació tipus ls

S'utilitza l'acció -ls:

$ find / -maxdepth 2 -type d -ls

Buscar fitxers segons els seus permisos

$ find . -perm 664

Buscar fitxers amb permisos SUID i GUID

find . -type f \( -perm -04000 -o -perm -02000 \)

Consulteu SUID i GUID i LPI_110.1. Realitzar tasques bàsiques de seguretat

Fitxers que tenen permisos de tothom per ser escrits

find . -perm -2 ! -type l -ls -path "./c-prune

Fitxes sense propietari

find . -nouser -o -nogroup -print

Buscar fitxers .rhost

find . -name .rhosts -print

print és l'opció per defecte.

Exemples amb exec

Només directoris

$ find . -type d -exec file {} \;

Només fitxers

$ find . -type f -exec file {} \;

Altres accions

Esborrar fitxers

Guardar els resultats en un fitxer

Buscar fitxers per inode

$ sudo find / -inum 6242512
/home/sergi/aborrar/prova/linkdurb
/home/sergi/aborrar/prova/b


Buscar fitxers més antics de x dies

Fitxers més antics de 30 dies:

$ find /linux2/backups/mysql -type f -mtime +30

Fitxers més antics que demà!?:

 find /linux2/backups/mysql -type f -mtime -1

Buscar fitxers modificats les últimes 24 hores

$ find $HOME -mtime 0

Buscar fitxers modificats les últimes 24 hores i que no estiguin en carpetes ocultes

$ find . \( ! -regex '.*/\..*/..*' \) -type f -mtime 0

Buscar fitxers modificats els últims 10 minuts

$ find ~ -type f -mmin -90 | xargs ls -l

Buscar fitxers grans

$ sudo find / -size +100M

Buscar els fitxers que pertanyen a un usuari o grup

Per buscar fitxers d'un grup:

$ find / -group grup1

per buscar fitxers d'un usuari:

$ find / -user usuari

Buscar un text dins de múltiples fitxers

Consulteu Grep#Buscar_un_text_en_el_contingut_de_m.C3.BAltiples_fitxers.

Buscar imatges

$ find . -iname "*.jpg" -or -iname "*.gif" -or -iname "*.png" -or -iname "*.nef"

Buscar fotos i movies

$ find . -iname "*.jpg" -or -iname "*.jpeg" -or -iname "*.gif" -or -iname "*.png" -or -iname "*.nef" -or -iname "*.avi" -or -iname "*.mov" -or -iname "*.bmp"

Buscar quines extensions s'utilitzen en un directori

$ find . | awk -F "." '{print $3}';

O millor:

$ find . | awk -F"." '{print $NF}' | sort | uniq | more

Exemples interessant pels administradors de sistema

Buscar tots els fitxers amb setuid i fitxers grans

$ find /    \( -perm -4000 -fprintf /root/suid.txt ’%#m %u %p\n’ \) , \( -size +100M -fprintf /root/big.txt ’%-10s %p\n’ \)

Guarda els resultats al fitxers /root/suid.txt i /root/big.txt.

Altres exemples

TODO

Search 'expr' in this dir and below. See also findrepo

find -name '*.[ch]' | xargs grep -E 'expr'	

Search all regular files for 'example' in this dir and below

find -type f -print0 | xargs -r0 grep -F 'example'	

Search all regular files for 'example' in this dir:

find -maxdepth 1 -type f | xargs grep -F 'example'	

Process each item with multiple commands (in while loop)

find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done	

Find files not readable by all (useful for web site)

find -type f ! -perm -444	

Find dirs not accessible by all (useful for web site)

find -type d ! -perm -111

Search cached index for names. This re is like glob *file*.txt

locate -r 'file[^/]*\.txt'

Canviar recursivament els permisos de només els fitxers

 find . -type f -exec chmod 644 {} \;

Canviar recursivament els permisos de només els directoris

 $ sudo find . -type d -exec chmod 755 {} \;

Establir el bit SGID recursivament a tots els directoris

$ sudo find . -type d -exec chmod g+s {} \;

Vegeu també

Enllaços externs