find

Para buscar archivos.

Sintaxis:
$ find NOMBRE_DIRECTORIO [EXPRESIONES]
Expresiones:
  • -name : exp -> Busca por nombre
  • -iname : exp -> Busca por nombre sin distinguir mayúsculas.
  • -user : exp -> Por usuario.
  • -type : tipo
    • f : Fichero
    • d : Directorio.
    • l : Enlace
  • -size : n -> Busca por tamaños
    • n = Kas
    • +n = Megas
    • -n = Gigas

Buscar por fechas de días. n= numero, con + o - indicamos

  • -atime n : Fecha Acceso.
  • -ctime n : Fecha de cambio.
  • -mtime n : Fecha modificación.

Buscar por minutos ...

  • -amin n : Fecha Acceso.
  • -cmin n : Fecha de cambio.
  • -mmin n : Fecha modificación.

Buscar por usuarios:

  • -user NOMBRE_USUSRIO : Filtra por usuario.
  • -group NOMBRE_GRUPO : Filtra por grupo.

Útiles :

  • -maxdepth n : Limita profundidad. Para limitar la búsqueda recursiva a "n" niveles.
  • -inum INODO : Busca por inodo.
  • -exec COMANDO {} \; : Permite ejecutar un comando.

Buscar los archivos terminados en .php

$ find . -type f -name *php

Encontrar los archivos que NO terminen en .php

$ find . -type f ! -name *php

otra opción es ...

$ find . -type f -not -name *php

Búsquedas múltiples, por ejemplo los que contengan los caracteres "ja" y no terminen en .php

$ find . -type f -name "ja*" ! -name *php

Aplicando operadores lógicos como OR ...

$ find . -name '*.php' -o -name '*.yml' -o -name '*.xml'

Buscar en varias rutas ala vez ...

$ find dir1/  dir2/ -name *php

Buscar archivos ocultos.

$ find . -name ".*"

Buscar archivos con condiciones de permisos. Por ejemplo los que contengan el permiso 777.

$ find . -type f -perm 0777

Archivos pertenecientes a un usuario en concreto.

$ find . -user NOMBRE_USUARIO

Por usuario y algún criterio adicional.

$ find . -user NOMBRE_USUARIO -type f -name *php

Por un grupo propietario en concreto.

$ find /var/ftp -group admin -type d

Los que fueron modificados en la última hora.

$ find /var/log/ -min -60

Los archivos que pesen hasta 1 megas.

$ find /var/www/app -size 1M

Ejecutando un comando sobre el resultado...

$ find . -type f -name *txt -exec ls -l {} \;

Información sobre un archivo.

$ file /bin/ls


/bin/ls: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked,
interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=3c233e12c466a83aa9...., stripped

Por tamaño ...

Buscar ficheros de 1 K.

$ find . -size 1
./hallo

Ficheros mayores de 1 K...

$ find . -size +1
./hallo2

Por modificación ...

Archivos modificados en los últimos 30 días.

$ find . -mtime -30
.
./fichero.txt
./test
...

Ejecutando comandos sobre los resultados de la búsqueda.

$ find . -mtime +90 -exec echo  "Encontrado -> " {} \;

Esto buscará todos los archivos modificados hace más de 90 días e imprime "Encontrado -> ./PATH/NOMBRE_ARCHIVO"

Si se utiliza rm se ha de ir con cuidado como siempre con rm .

results matching ""

    No results matching ""