El comando find se utiliza en gran parte para buscar archivos en sistemas linux. Con find podemos realizar busquedas especifica, para eso tendremos que agregar unos parámetros, observemos los ejemplos descritos a continuación.
El comando find puede buscar los archivos en el directorio actual y sus subdirectorios, ejemplo:
Si queremos encontrar con find los archivos con nombre "tmp" se utiliza el argumento "-name".
veamos el siguiente ejemplo:
~$find -name "tmp*"
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/tmp3
Ahora si quisiéramos encontrar con find todos los archivos tmp pero sin importar si es mayuscula/minuscula utilizaremos el argumento "iname", este para obtener archivos con nombres que no son.
observemos el siguiente ejemplo:
~$find -iname "TMP*"
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/Tmp2
/Maildir/.INBOX.Drafts/tmp3
Buscaremos con find archivos creado en un directorio especifico. puedes usar "name" o "iname"
ejemplo:
~$find /home/jack/ -iname "*.pdf"
/home/jack/phone.pdf
/home/jack/iphone.pdf
/home/jack/sip.pdf
Encontrar todos los directorios en la carpeta "home"
~$find /home/ -type d
Para localizar los archivos que tienen una cierta cantidad de caracteres, usaremos la letra "c" la cual es la abreviatura de "Characters".
Buscando archivos con exactamente 1.000 caracteres
~$ find -size 1000c
Buscando archivos con mas de 1.000 caracteres
~$ find -size +1000c
Buscando archivos con menos de 1.000 caracteres
~$ find -size -1000c
Encontrar los archivos que contienen entre 600 y 700 caracteres.
~$find -size +599c -and -size -701c
Encontrar directorios y ficheros vacios
$ find -empty
Podemos utilizar find para buscar archivos de determinado tamaño, estos pueden ser en:
Buscar archivos con determinado tamaño
~$find /home/jack/ -size 48k
Buscar archivos con mas tamaño
~$find /home/jack/ -size +48k
El comando find puede buscar los archivos en el directorio actual y sus subdirectorios, ejemplo:
~$find
./Maildir/.INBOX.Drafts
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/Tmp2
/Maildir/.INBOX.Drafts/tmp3
./Maildir/.INBOX.Drafts/new
./Maildir/.INBOX.Drafts/cur
./Maildir/.INBOX.Drafts/maildirfolder
./Maildir/.INBOX.Drafts
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/Tmp2
/Maildir/.INBOX.Drafts/tmp3
./Maildir/.INBOX.Drafts/new
./Maildir/.INBOX.Drafts/cur
./Maildir/.INBOX.Drafts/maildirfolder
Si queremos encontrar con find los archivos con nombre "tmp" se utiliza el argumento "-name".
veamos el siguiente ejemplo:
~$find -name "tmp*"
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/tmp3
Ahora si quisiéramos encontrar con find todos los archivos tmp pero sin importar si es mayuscula/minuscula utilizaremos el argumento "iname", este para obtener archivos con nombres que no son.
observemos el siguiente ejemplo:
~$find -iname "TMP*"
./Maildir/.INBOX.Drafts/tmp1
/Maildir/.INBOX.Drafts/Tmp2
/Maildir/.INBOX.Drafts/tmp3
Buscaremos con find archivos creado en un directorio especifico. puedes usar "name" o "iname"
ejemplo:
~$find /home/jack/ -iname "*.pdf"
/home/jack/phone.pdf
/home/jack/iphone.pdf
/home/jack/sip.pdf
Encontrar todos los ficheros en la carpeta "home"
~$find /home/ -type fEncontrar todos los directorios en la carpeta "home"
~$find /home/ -type d
Para localizar los archivos que tienen una cierta cantidad de caracteres, usaremos la letra "c" la cual es la abreviatura de "Characters".
Buscando archivos con exactamente 1.000 caracteres
~$ find -size 1000c
Buscando archivos con mas de 1.000 caracteres
~$ find -size +1000c
Buscando archivos con menos de 1.000 caracteres
~$ find -size -1000c
Encontrar los archivos que contienen entre 600 y 700 caracteres.
~$find -size +599c -and -size -701c
Encontrar directorios y ficheros vacios
$ find -empty
Podemos utilizar find para buscar archivos de determinado tamaño, estos pueden ser en:
c = bytes
w = 2 palabras byte
k = kilobytes
b = bloques de 512 bytes
w = 2 palabras byte
k = kilobytes
b = bloques de 512 bytes
~$find /home/jack/ -size 48k
Buscar archivos con mas tamaño
~$find /home/jack/ -size +48k
Buscar archivos con menos tamaño
~$find /home/jack/ -size -48k
Find puede realizar búsquedas basadas en fechas, para eso debemos de saber los operadores.
En este ejemplo buscaremos con find archivos depositados hace 5 minutos con el operador mtime.
~$find /home/jack/ -mtime -5 -iname "*pdf"
/home/jack/iphone.pdf
~$find /home/jack/ -size -48k
Find puede realizar búsquedas basadas en fechas, para eso debemos de saber los operadores.
Acceso ==>> -atime(dia),-amin(minutos)
Cambio de estado ==>> -ctime(dia),-cmin(minutos)
Modificación ==>> -mtime(dia),-mmin(minutos)
Buscar archivos que fueron accedidos hace 2 dias
~$find /home/jack/ -atime +2
Buscar archivos que fueron modificados hace menos de 5 min
~$find /home/jack/ -cmin -5
Buscar archivos que fue accedido entre 6 y 15 min atras
~$find /home/jack/ -amin +5 -amin -15
Cambio de estado ==>> -ctime(dia),-cmin(minutos)
Modificación ==>> -mtime(dia),-mmin(minutos)
Buscar archivos que fueron accedidos hace 2 dias
~$find /home/jack/ -atime +2
Buscar archivos que fueron modificados hace menos de 5 min
~$find /home/jack/ -cmin -5
Buscar archivos que fue accedido entre 6 y 15 min atras
~$find /home/jack/ -amin +5 -amin -15
En este ejemplo buscaremos con find archivos depositados hace 5 minutos con el operador mtime.
~$find /home/jack/ -mtime -5 -iname "*pdf"
/home/jack/iphone.pdf
Tambien podemos localizar los archivos que han sido modificados desde una fecha/hora propuesta utilizando "touch", para eso almacenaremos la fecha y hora en el archivo temporal "busqueda".
~$touch -d "24 jun 2013 21:45:00" busqueda
Luego utilizaremos busqueda y el parametro "newer" para encontrar los archivos creados despues de la fecha almacenada en busqueda, ejemplo
~$ find /home/jack/ -newer busqueda
Ahora para buscar archivos creados antes de esa fecha, utilizaremos el parametro el cnewer, ejemplo:
~$ find /home/jack/ -cnewer busqueda
Ahora buscaremos con find archivos y directorios creados por usuario y grupo.
Encontrar archivos propiedad del usuario jack
~$find /home/ -user jack -type f
Encontrar directorios propiedad del grupo nerd
~$find /home/ -group nerd -type d
Con find podemos buscar archivos que no pertenecen a ningún usuario/grupo, estos con el fin de encontrar algun comportamiento inusual de nuestro linux.
Buscar archivos que no pertenecen a ningún usuario
~$find /etc/ -nouser
Buscar archivos que no pertenecen a ningún grupo
~$find /etc/ -nogroup
Buscar archivos que tienen uid entre 500 y 1000.
~$find /etc/ -uid +500 -uid -1000 -type f
Find puede encontrar archivos de lectura, escritura y de ejecucion.
~$touch -d "24 jun 2013 21:45:00" busqueda
Luego utilizaremos busqueda y el parametro "newer" para encontrar los archivos creados despues de la fecha almacenada en busqueda, ejemplo
~$ find /home/jack/ -newer busqueda
Ahora para buscar archivos creados antes de esa fecha, utilizaremos el parametro el cnewer, ejemplo:
~$ find /home/jack/ -cnewer busqueda
Ahora buscaremos con find archivos y directorios creados por usuario y grupo.
Encontrar archivos propiedad del usuario jack
~$find /home/ -user jack -type f
Encontrar directorios propiedad del grupo nerd
~$find /home/ -group nerd -type d
Con find podemos buscar archivos que no pertenecen a ningún usuario/grupo, estos con el fin de encontrar algun comportamiento inusual de nuestro linux.
Buscar archivos que no pertenecen a ningún usuario
~$find /etc/ -nouser
Buscar archivos que no pertenecen a ningún grupo
~$find /etc/ -nogroup
Buscar archivos que tienen uid entre 500 y 1000.
~$find /etc/ -uid +500 -uid -1000 -type f
Find puede encontrar archivos de lectura, escritura y de ejecucion.
lectura ==>> -readable
escritura ==>> -writable
ejecucion ==>> -executable
buscar archivo ejecutable en home
~$find /home/ -executable
Buscar archivos con determinados permisos usando find.
~$find /home/ -perm 664
~$find /home/ -executable
Buscar archivos con determinados permisos usando find.
~$find /home/ -perm 664