Aquí algunos ejemplos de uso del comando Find.-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
find . -exec grep “www.athabasca” ‘{}’ \; -print Busca la cadena “www.athabasca” dentro del contenido de los archivos del directorio actual y los imprime find . -name "rc.conf" -exec chmod o+r '{}' \; Le cambia el modo a o+r a los archivos con nombre rc.conf en el directorio actual find . -perm -g+w,u+w ! -perm -o+w Busca los archivos que son escribibles por el propietario o su grupo, pero no el resto grep 'string' *.txt Busca la cadena "string" en todos los archivos .txt grep 'main(' *.c Busca la cadena "main(" enn todos los archivos .c grep -i 'ultra' *.conf Busca la cadena ultra (sin tener en cuenta mayusculas/minúsculas) en los ficheros .conf grep -iR 'ultra' *.conf Busca la cadena ultra (sin tener en cuenta mayusculas/minúsculas) en los ficheros .conf en el directorio actual y subdirectorios del mismo grep --color=auto -iR 'getChar();' *.c Resalta los resultados para ver mejor el texto grep --color=auto -iRnH 'getChar();' *.c Muestra el nombre de archivo y número de línea donde se encontró la cadena find . -name "*.c" -print | xargs grep "main(" Busca en tódos los ficheros .c la cadena "main)" Queremos encontrar todos los ficheros con extensión .conf dentro de /etc: find /etc -name '*.conf' Lo cierto es que este tipo de búsquedas pueden resultar demasiado grandes, y listar muchísimos resultados, para ello podemos añadir criterios y acotar los resultados. Si por ejemplo quisiéramos ver los logs ubicados dentro de /usr/local cuyo tamaño supere los 100Mb: find /usr/local/ -name '*log' -a -size +100M Y si quisiéramos saber que ficheros de el directorio /var/log/ cuya extensión sea .bak no han sido modificados en 15 días: find /var/log -name '*.bak' -mtime +15 Si no quisiéramos esos ficheros, solamente tenemos que borrarlos: find /var/log -name '*.bak' -mtime +15 -exec rm -f {} \; |