Lunes, 10 de septiembre de 2012

Es muy probable que en alguna ocasión necesitemos encontrar un archivo en nuestro sistema que, sabemos que lo tenemos pero no recordamos en donde lo hemos ubicado. En GNU/Linux disponemos de diversos métodos de búsqueda tanto desde la terminal como desde el escritorio. Si utilizamos la terminal, bien porque nos encanta o bien porque trabajamos en un sistema sin entorno gráfico, disponemos del comando locate (muy rápido) y el comando find (muy potente).

 

El comando locate

Los resultados de este comando son instantáneos debido a que el Sistema ha creado una base de datos, conocida como índice, que indica en donde se localizan los archivos. Si queremos utilizar este comando con garantías debemos actualizar este índice. Esto es necesario ya que nosotros como usuarios instalamos/desinstalamos aplicaciones.

Para ello nos vamos a la terminal y tecleamos,

sudo updatedb


Ahora ya podemos utilizar el comando locate. Tecleando en la terminal,

locate  -i   nombre_archivo


Nos devuelve las rutas donde aparece al  archivo nombre_archivo. Con el parámetro  -i  indicamos que no distinga entre mayúsculas y minúsculas ya que el comando locate es “case sensitive”


Además podemos realizar una búsqueda indicando un texto existente dentro del archivo

locate   nombre_archivo | grep   estudio

Devolverá todos las localizaciones en nuestro sistema que contengan el nombre  nombre_archivo  y que además también contengan el texto  estudio  en su interior.

 

El comando find

Busca archivos dentro de una jerarquía de directorios. La sintaxis del comando es la siguiente:

find <donde comenzar la búsqueda> <criterios de búsqueda> <acciones a realizar>


De una forma práctica lo utilizaremos como sigue:

find [/directorio/subdirectorio] -name [nombrearchivo] [*.ext]  -user[nombreusuario] -size [nºk]


Los términos que se encuentran entre [] son parámetros de búsqueda que podemos utilizar combinados (por supuesto no escribiremos los símbolos [] a la hora de teclear el comando) es decir:

- Podemos indicar un directorio en el que buscar (si no ponemos nada estamos indicando que queremos que la búsqueda se lleve a cabo en el directorio actual, lo mismo que “.”,  si ponemos sólo / estamos indicando que la búsqueda se realice desde el directorio raíz).

- El nombre del archivo: podemos indicar el nombre completo, o una parte del mismo utilizando el ‘*’ como comodín.

- Extensión.

- Por nombre de usuario.

- Por tamaño de archivo: podemos indicar que busque archivos de un tamaño inferior (-), igual, o superior (+) al indicado como parámetro en kilobytes.

O bien podemos utilizar una combinación de ellos.

En cualquier momento podemos detener una orden de búsqueda pulsando Ctrl+C 


Algunos ejemplos:

----------------------------------------------------------------------------------------------------------

Realiza una búsqueda de todos los archivos dentro del directorio /Documentos que tienen extensión .png

find  /Documentos  -name  *.png

Realiza una búsqueda del archivo nombre_archivo, comenzando desde el directorio raíz

find / -name nombre_archivo

El mismo que el anterior pero le indicamos sólo una parte del nombre del archivo

find / -name *parte_del_nombre_archivo*

Realiza una búsqueda de todos los archivos por nombre de usuario

find / – user greiscool

Para buscar archivos por tamaño

      (busca archivos vacíos)

find  -size 0

      (busca archivos de tamaño igual o mayor a 250 kilobytes)

find  -size +250k


Para buscar archivos por expresiones regulares. Por ejemplo si tenemos archivos del tipo foto19-09-2012_01.jpg, foto19-09-2012_02.jpg,… , foto19-09-2012_40.jpg, foto20-09-2012_01.jpg,…, foto21-09-2012_01.jpg

find  -regex ‘./foto[19-21]-09-2012_[0-4][1-9].jpg’

 ----------------------------------------------------------------------------------------------------------


NOTA.- Estas son sólo algunas opciones, podemos consultarlas todas en la ayuda tecleando en la terminal,

man find


También, podemos buscar archivos desde el entorno gráfico => Catfish - Búsqueda de archivos en ubuntu desde el escritorio


Tags: linux, find, locate, buscar archivos, terminal

Publicado por Greiscool @ 21:58  | Linux
Comentarios (1)  | Enviar
Comentarios
- Eres libre de dejar un comentario, pero solo será publicado si eres respetuoso.
- Si deseas hacer una consulta expón con claridad e indica tu "nick" para que pueda dirigirme a tí en la respuesta.
- No indiques tu e-mail en el comentario: miarroba no permite la edición de comentarios así que por tu seguridad no serán publicados comentarios en los que aparezca el e-mail.
- Si deseas contactar por e-mail puedes escribirme a libertadtux[arroba]gmail[punto]com
Publicado por Invitado
Mi?rcoles, 09 de diciembre de 2015 | 15:58

¡Muy bueno el comando locate!

Aquí más ejemplos que he encontrado del comando find: http://www.sysadmit.com/2015/12/linux-buscar-ficheros-directorios-con-find. html

 
Licencia Creative Commons
Libertad TUX
por Rober (Greiscool) se encuentra bajo una Licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España