====== find ====== ===== Buscando archivos ===== Busca "prueba.txt" en /mnt y los subdirectorios que tenga. Se puede usar comodinespara el nombre de fichero find /mnt -name prueba.txt Buscar archivos "core" con más de 2 Mb: find ~/ -name core -size +2048k Cambiar permisos de ficheros y directorios: find ~/public_html -type d -exec chmod 711 {} \; find ~/public_html -type f -exec chmod 644 {} \; Buscar los archivos ".bak" en el directorio actual(incluyendo subdirectorios): for i in $(find . -name "*.bak"); do rm $i; echo "buscando ..."; done El comando encerrado entre ''$(...)'' será ejecutado previo al ''for'' ya que su resultado será utilizado como entrada de éste último. El mismo objetivo pero aprovechando la potencia del comando ''find'': find /directorio -iname *.bak -exec rm {} \; El último '';'' debe estar escapeado( ''\;'' pues formará parte del comando a ser ejecutado por ''-exec'' y no como cierre del ''find''. ''{}'' será reemplazado por el nombre de cada uno de los archivos encontrados. find . -name '*.config' -mtime 1 -print -cpio /dev/rmt1 Busca la estructura de directorio completo empezando por el directorio actual por archivos que su nombre terminan en ''.config'' que fueron modificados hace un día. La opción ''-name'' la cual es una expresión de búsqueda iguala archivos con nombres que terminan en ''.config'' y opción ''-mtime'' es otra expresión de búsqueda que iguala archivos que fueron modificados un día atrás. La expresión de accion ''-print'' imprime el nombre del archivo a pantalla y la expresión de accion ''-cpio'' escribe los archivos al dispositivo de cintas ''/dev/rmt1''. Las expresiones de búsqueda y accion más usadas se muestran más adelante. ===== Buscar texto ===== find . -type f -exec grep "texto" {} /dev/null \; Si bien es posible realizar búsquedas usando ''find'' como pueden ver, no es recomendable hacerlo, ya que se debería utilizar el comando ''grep'' directamente: grep -r "texto" * Pueden probar también ''rgrep'', ''zgrep'', ''fgrep'' y ''egrep'' que son variaciones del comando ''grep'' pero con parámetros ya preestablecidos. ===== Búsquedas avanzadas ===== Buscar en todo el directorio home incluyendo todos los subdirectorios por un archivo de nombre ''perdido.txt'' e imprime la ruta a al archivo en la pantalla. $ find ~ -name 'perdido.txt' -print El tilde o como se llame ''~'' especifica su directorio home. Empezando por el directorio home, recursivamente busca en todos los archivos cuyos sus nombres terminan en extensión ''.cpp'' e imprima el resultado a la pantalla. $ find ~ -name '*.cpp' -print Busque todos los archivos empezando desde el directorio actual que su nombre empieza con carta y tiene un carácter más. $ find . -name 'carta?' -print Esta sentencia encontraría archivos nombrados ''carta1'', ''cartad'' y ''cartas'', pero no a ''carta'' o ''carta12''. El punto ''.'' especifica el directorio actual. Busque todos los archivos empezando con el directorio actual que su nombre empieza con una letra mayúscula y termina con un número. $ find . -name '[A-Z]*[0-9]' -print Busque todos los archivos empezando con el directorio ''/usr/local/install'' de nombre ''readme'' o ''Readme'': $ find /usr/local/install -name '[R,r]eadme' -print Esto también se puede lograr con la expresión compuesta. $ find /usr/local/install \( -name 'readme' -o -name 'Readme' \) -print Busqueda de archivos usando permisos relativos: $ find ~ -perm /g=rw, o=r -type f **Referencias:** http://www.scribd.com/doc/37791/GNULinux-Basicamente?page=54