martes, 27 de mayo de 2008

Buscar archivos con "Find"

En muchas ocasiones, tengo que encontrar archivos que andan "perdidos" por el sistema, y digo perdidos, porque mas bien no recuerdo donde los guarde XD, bueno buscando un poco encontré una solución que me ha favorecido mucho, se llama "find" y lo usamos desde consola, la sintaxis es la siguiente:

find (carpeta donde buscar) (opcion) (archivo o locacion a encontrar)

Veamos unos cuantos ejemplos:

Si queremos encontrar el archivo ctu.html lo que haremos es escribir esto:

find / -name 'ctu.html'

Donde / es la carpeta raíz, lo que quiere decir que se va a buscar el archivo en todo /, luego tenemos -name, esto es la opción que dice que buscará por nombre y por último el archivo.

Y bueno, podemos usar ciertos comodines (*), por ejemplo si sabemos que nuestor archivo esta en nuestro /home/usuario pero no recordamos el nombre podemos hacer lo siguiente:

find /home/usuario -name '*.html'

Y buscará todos los archivos con extensión html.

Por ejemplo, para buscar un archivo donde conozcamos el inicio del archivo pero no recordemos todo el nombre ni su extensión ponemos

find /home/usuario -name 'ct*'

Y buscará todo lo que comience con "ct" y así, si queremos buscar un archivo que en su nombre contenga "tu" pondremos la instrucción de arriba pero al final será '*tu*'

find /home/usuario -name '*tu*'


Si lo que se desea es buscar archivos y que no se distinga entre mayúsculas y minúsculas, lo que se debe hacer es cambiar el parámetro -name por -iname.

Otro parámetro que a veces uso (en vez de -name) es -size que hará la búsqueda por el tamaño del archivo, veamos un ejemplo:

find /home/usuario -size +2000k

donde buscará todos los archivos que pesen mas o igual que 2000kb (2MB), si en vez de "+" usamos la opción "-" buscará los archivos que pesen menos o igual que 2MB.

A continuación una liste de opciones que se pueden usar en vez de la "k":

c = bytes

k = Kilobytes

M = Megabytes

G = Gigabytes

Para buscar archivos en cuestiones de tiempo de acceso (-atime) y en cuestiones de tiempo de modificación (-mtime) la sintaxis es la siguiente:

find /home/usuario/ -name '*.html' -atime +1

Con el comando anterior se pide que regrese los archivos html que hayan sido accesados hace mas de un día.

find /home/usuario/ -name '*.html' -mtime +1

Con el comando que acabamos de ver, se buscan los archivos html que hayan sido modificados hace mas de un dia


Por último con un "man find" podrán encontrar más información de este excelente buscador de archivos.

FUENTE: http://www.zonasiete.org/manual/ch09s05.html

No hay comentarios: