El util comando find.

12 Apr
2008
No Gravatar

Una de las mejores cosas que existen en Unix/linux son las herramientas de la consola
como lo es el util comando find parte del “GNU findutils (find,locate, updatedb, xargs)”, este comando es una verdadera joya, sabiendolo utilizar puede ahorrar mucho tiempo en tareas repetitivas, para muestra unos ejemplos:

supongamos que tenemos archivos que no tienen el set de permisos adecuados(suponiendo un set 755), pero tales archivos estan dispersos en diferentes directorios y necesitamos corregir los permisos (a un 644), normalmente alguien que no supiera de esta herramienta haria lo siguiente:

cd directorio
ls -la
chmod 644 archivos.xyz

y esto se haria repetitivamente por cada directorio donde los permisos de los archivos no estuvieran bien.

Ahora bien con el comando find la misma tarea se realizaria con una sola instruccion al shell:

find . -type f -perm 755 -exec chmod 644 {} +

los parametros significan:

. busca recursivamente en el directorio actual

“-type f”: lo que busco son archivos

“-perm 755″: que tengan los permisos 755

“-exec 644 {} +”: cuando los encuentres cambia los permisos a 644

en versiones viejas del comando find la ultima parte tendria que variar para que funcione seria asi:

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

en una sola instruccion se puede buscar y ejecutar un comando sobre los archivos encontrados.

Lo anterior tambien se puede realizar con directorios con solo cambiar un parametro, si tenemos directorios con permisos 777 y los queremos cambiar a 755 (permisos predeterminado para directorios), escribimos:

find . -type d -perm 777 -exec chmod 755 {} +

find es versatil y tiene diferentes parametros los cuales podemos aplicar dependiendo de lo que queramos buscar

find /home/testuser/projects/ -name 'web_*.py' -size +50k -print

podemos usar busquedad por nombre usando expresiones regulares, permisos, propietario del archivo, tamaño , tiempos de acceso y hasta por tipo de archivos symbolic links o hard links

referencia

GNU FindUtils Manual

Comment Form

top