Búsquedas de ficheros y directorios en Linux: comando find
Cuando queremos encontrar elementos del sistema de ficheros que cumplan ciertas condiciones, el comando ls no nos ofrece la potencia necesaria para ello. Por eso vamos a estudiar el uso y las opciones más útiles del comando find
El comando find busca de forma recursiva a partir de un directorio todos los elementos que cumplan ciertas condiciones que pueden estar relacionadas con el nombre de los ficheros, el tamaño, los permisos, el tipo, las fechas de acceso y modificación, etc.
Sintaxis: find [camino] [opciones]
Opciones principales del comando find
- –name ”patrón”: permite especificar patrones para los nombres de los ficheros a buscar. Podemos usar todos los comodines que admite bash: el asterísco, la interrogación, corchetes, etc..
Es muy importante que el patrón vaya dentro de las comillas para que el bash no expanda los nombres nos produzca resultados inesperados. - –iname “patrón”: permite especificar patrones para los nombres de los ficheros a buscar sin tener en cuenta mayúsculas y minúsculas.
- –type tipo: permite indicar el tipo de fichero a buscar. Este puede ser d para directorios, f para ficheros regulares, l para enlaces simbólicos.
- –size +-n: permite indicar el tamaño máximo y/o mínimo de los ficheros a buscar. Por defecto el tamaño se expresa en bloques de 512 bytes, pero si se precede este por un carácter: k hace referencia a kilobytes, M a megabytes y G a gigabytes.
- –perm – / cifra: permite referirse a aquellos ficheros cuyos permisos sean exactamente cifra, incluya todos los de modo (signo -) o incluya alguno de los de cifra (signo /). Cifra será la representación decimal de los permisos que queramos buscar.
- –user usuario: especifica el usuario propietario del fichero
- –group usuario: especifica el grupo propietario del fichero
- –exec comando: permite definir un comando a aplicar para cada resultado de la búsqueda. La cadena {} se sustituye por el nombre de los ficheros encontrados. El caracter ; permite indicar la finalización del comando. (Tanto {} como ; tienen que ir entre comillas o entre contrabarras para evitar que sea sustituido por el shell).
Ejemplos usando find
- find /etc -name ‘*.conf’
busca en /etc todos los ficheros con extensión conf - find / -size +10M -size -20M
busca los ficheros cuyo tamaño esté entre 10MB y 20MB - find / -name core -exec rm ‘{}’ ‘;’
busca todos los ficheros que se nombren core y los borra.
Etiqueta:portada