UNIX – Algunos ejemplos de uso del comando FIND.

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 {} \;
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.