Você está na página 1de 5

Comando find

El formato
bsico es:
find ruta expresin

Opciones:

Pruebas:

Acciones:

Acciones sobre el

resultado
Como se ha mencionado antes, -exec se aplica para ejecutar una determinada accin sobre el resultado de la bsqueda devuelto
por find.
Pues bien, existe otra instruccin cuya finalidad es la misma pero con una sintaxis y funcionamiento diferentes, xargs.

Sintaxis xargs:
find ..... | xarg [opciones] orden

Opciones:

-0 null, se utiliza en el caso de que el nombre de los ficheros devueltos terminen con un carcter nulo, en lugar de con un
espacio en blanco.
Esta opcin deber usarse cuando utilicemos la accin print0 con find.

-t verbose: muestra por pantalla la accin a ejecutar antes de proceder con la orden.
-p: pregunta al usuario si se debe ejecutar la accin.
-i: recoge el valor devuelto por find y lo utilizamos mediante los corchetes "{}" (similar a la sintaxis de exec). Muy til para
comandos del tipo mv por ejemplo. Lo vemos:

$ find . -name '1.log' | xargs -I -t mv {} 1.log.old


mv ./1.log 1.log.old
La cadena {} se reemplaza por el resultado devuelto por find, en este caso 1.log..

--help: muestra un resumen de las opciones de xargs.

Para ms opciones mirar la ayuda en lnea (man xargs).


Entonces, cual elegir?...

Diferencias entre xarg y exec


Fundamentalmente las diferencias son las siguientes:

La sintaxis propia de cada uno.


El tiempo de ejecucin de la orden.

Respecto a la primera diferencia, pues es acostumbrarse a una sintaxis u otra, y respecto a la segunda, esta es definitiva porque es
mucho ms rpido el parmetro xarg.
Para comprobarlo bastara con ejecutar:
$ time find -name *.jpg -print0 | xargs -0 ls
./google-earth/resources/google_earth_splash.jpg
./.opera/cache4/opr0003C.jpg
./.opera/cache4/opr0003M.jpg
.....
real 0m0.096s
user 0m0.020s
sys 0m0.060s
$ time find -name *.jpg -exec ls {} ;
./google-earth/resources/google_earth_splash.jpg
./.opera/cache4/opr0003C.jpg
./.opera/cache4/opr0003M.jpg
.....
real 0m0.633s
user 0m0.012s

Ejercicio
s:
1. Buscar la ubicacin exacta del un archivo profile por su nombre en /.

Find / name profile


2. Buscar la ubicacin de los archivos que comiences por l en el directorio /bin.

Find /bin name l*


3. Buscar enlaces simblicos del fichero lessfile en el sistema.

Find / -type l name lessfile


4.

Buscar archivos del sistema que fueron ledos por ltima vez en las ltimas 24 horas

Find / -atime -1
5.

Buscar ficheros cuyo tamao est comprendido entre 100 y 400 MB.

Find / -size +100M and size -400M


6.

Buscar los directorios y enlaces simblicos del directorio / etc

Find /etc type l and type d


7.

Encontrar ficheros que pertenecen al usuario aso y al grupo root.

Find user aso Find group root


8. Buscar ficheros ordinarios que tengan permiso de solo lectura para todos los usuarios y
guarda sus nombres un archivo llamado /home/sololectura.txt
9. Crea en tu directorio de trabajo los ficheros fich1.txt fich2.txt fich3.txt. Ahora realiza en tu
directorio de trabajo una bsqueda del fichero llamado fich1.txt y renmbralo como fichero1.
10. Busca en tu directorio de trabajo los ficheros que acaban en .txt y elimnalos.
11. Busca en tu directorio de trabajo el fichero llamado fichero1 y cmbiale los permisos de
manera que solo tenga acceso al mismo el usuario propietario.
12. Busca archivos mayores de 200 kilobytes, ubicados en el directorio actual:
14. Busca archivos no accedidos hace ms de 30 das en todo el sistema:
Como recordatorio, la opcin -atime se refiere al tiempo transcurrido desde la ltima lectura, mtime el tiempo transcurrido desde ltima modificacin de los permisos y, -ctime al tiempo
transcurrido desde la ltima modificacin del contenido.
15. Busca archivos vacos y borrarlos, ubicados en nuestro "home" por ejemplo:

Find /home/aso empty exec rm {}\;


16. Busca archivos sin propietario. Esta situacin se puede dar por ejemplo cuando la cuenta
de usuario ha sido borrada pero han permanecido los archivos creados por este usuario
eliminado del sistema:

Adduser usuario1
Userdel usuario1
Find / -nouser 2> /dev/null
17. Buscamos los ficheros de nombre passwd en /etc e imprimimos por pantalla ignorando los
mensajes de error.

18. Mostramos los ficheros cuyo nombres finalizan con los caracteres 'wd' y visualizamos
su contenido.

Find /etc name *wd exec cat {}\;


19. Buscamos todos los ficheros pertenecientes al usuario root cuyo permiso especial SUID
esta activo.
20. Buscar ficheros con permisos exactamente 777, cuyo propietario sea alex y restringimos
la busqueda al sistemas de ficheros de Linux (omite el resto).
21. Buscamos archivos ocultos en el sistema. Slo buscamos en el sistema de ficheros
propio de Linux (-xdev):

22. Buscar los ficheros (slo ficheros regulares por -type f) cuya extensin sea .jpg, que el
propietario se alex y todos aquellos cuyos nombres no empiecen por cualquier letra, ya sea
maysculas o minsculas.
23. Buscamos los ficheros del usuario root que han sido modificados en las ltimas 24 horas
ubicados a partir del directorio /etc.
24. Buscamos los ficheros del usuario root que han sido ledos en los ltimos 2 minutos
ubicados a partir del directorio /etc.
25. Encontrar todos los ficheros que son escribibles por todos los usuarios:
26. Buscar todos los ficheros sin propietario y borrarlos. Tambin los imprime por la salida
estndar:
27. Buscamos todas las imgenes con extensin .gif, .jpg .png ubicadas en el escritorio y las
movemos al directorio ~/imagenes:
28. Restablecemos los permisos para los ficheros y directorios en nuestro directorio
para aplicaciones Web:
29. Buscamos todos los ficheros regulares que han sido modificados en esta ltima semana y
los empaquetamos con la utilidad tar:
30. Buscamos todos los ficheros a partir del directorio actual que no estn ocultos, sin 'bajar'
por los subdirectorios (-maxdepth 1) y, los imprimimos en el siguiente formato:
31. Buscar todos los ficheros cuyo tamao sea mayor de 2 Megabytes y se hayan ledo en
el ltimo mes:
32. Buscamos la version mas reciente del archivo httpd.conf. El fichero actual est ubicado en
/etc/apache2/httpd.conf:

Você também pode gostar