Guido Socher Acerca del Autor : Ama a Linux porque es gratis y es divertido trabajar con la gente de la comunidad Linux de todo el mundo. Pasa tiempo con su novia, escuchando la BBC World Service, montando bicicleta por el campo y jugando con Linux.
Contenidos: |
Busqueda de ficherosResumen: Este art�culo nos da una introducci�n sobre como buscar ficheros por nombre y por contenido. Buscando ficheros por nombreProbablemente puedes recordar este problema: Ten�as alg�n tipo de fichero y no pod�as recordar donde lo pusiste. Aqu� es donde el comando find viene a ser �til. �C�mo usarlo? find viene, por supuesto, con un extenso man page pero veamos unos "casos t�picos": Buscar un archivo llamado lostfile.txt, recorriendo el��rbol de directorios comenzando en el directorio actual:
find acepta tambi�n wildcards. Recuerda colocar entre comillas los wildcards, de lo contrario el shell no los reconocer� como tales. Aqu� un ejemplo:
Este comando puede ser un poco lento cuando necesites buscar en un �rbol de directorios muy grande. Aqu� el comando locate puede ayudar. Este realmente no busca directamente un archivo en el sistema de ficheros. Busca en una base de datos. Es bastante m�s r�pido pero la base de datos podr�a estar desactualizada. En algunas distribuciones la base de datos localizada es actualizada cada noche pero puedes, por supuesto, correr el comando updatedb manualmente de vez en cuando para actualizarla. locate realiza b�squedas de subcadenas.
Este localiza�los ficheros lostfile.txt o mylostfile.txt, etc... Hasta ahora estabamos buscando ficheros de los cuales ten�amos una remota idea de sus nombres. Tal vez el nombre del archivo no era lostfile.txt sino lastfile.txt o leastfile.txt o lostfile.txt o Lostfile.txt o lostfile.text y no puedes recordar exactamente el nombre. �C�mo podr�as encontrar el archivo a�n? en este caso podr�as usar una utilidad para encontrar ficheros que tolera fallas en la escritura del nombre llamada ftff (fault tolerant file find). Esta utilidad busca el archivo y permite un n�mero de "errores en la escritura". Este comando encontrar�a los nombres mal escritos de los ficheros:
El n�mero permitido de errores en la escritura del nombre depende del largo del mismo pero tambi�n puede establecerse con la opci�n -t. Para permitir un m�ximo de 2 errores y usar tambi�n un wildcard, s�lo tipea:
ftff es un programa de mi autoria y forma parte de un paquete llamado whichman-1.4 que puede ser bajado de sunsite.unc.edu/pub/ Linux/apps/doctools/whichman-1.4.tar.gzAlgunas veces te gustar�a encontrar todos los ficheros en el �rbol de directorios que no contengan cierta cadena. Por ejemplo todos los ficheros excepto .o y .c. Aqu� est�n un par de posibilidades para hacerlo::
Obteniendo una vista completa del sistema de ficherosAlgunas veces te agradar�a tener una visi�n total del sistema de ficheros frente a ti. Por ejemplo: Tienes un nuevo CD y quisieras ver que es lo que tiene. Podr�as usar solamente ls -R. Personalmente prefiero por f�cil lectura uno de los siguientes: tree dibuja un diagrama de �rbol (sunsite.unc.edu/pub/Linux/utils/file/ tree-1.2.tgz ).
Tambi�n est� por supuesto, el viejo, pero buen find. La versi�n GNU de find, que viene usualmente con Linux, tambi�n tiene la posibilidad de cambiar el formato de impresi�n para imprimir, por ejemplo el tama�o del archivo con el nombre:
Hay tambi�n un peque�o programa en perl usando el comando ls que hace cosas similares. Se puede bajar de aqu�: lsperl.gz. Puedes encontrar probablemente muchas m�s herramientas para ver ficheros pero �sta es, para la mayor�a de los casos, suficiente. Encontrando ficheros por contenido (buscando cadenas de texto en ficheros)La utilidades standard para buscar cadenas de texto en ficheros son grep/egrep para la b�squeda de expresiones regulares y fgrep para buscar cadenas literales. Para buscar una expresi�n en todos los ficheros del directorio actual s�lo tipea:
Para buscar cadenas en todos los ficheros de todo el �rbol de directorios puedes combinar el comando find con otro comando de b�squeda de archivo, por ejemplo: egrep. Esto puede ser realizado de muchas formas:
Si encuentras �sto d�ficil de recordar entonces puedes usar un peque�o shell script que puedes encontrar aqu� grepfind.gz Este script tambi�n se asegura que caracteres no imprimibles sean removidos en caso de que ejecutes egrep en un archivo binario. Un programa de b�squeda muy interesante es agrep. Este funciona b�sicamente como egrep pero realiza b�squedas que toleran errores en la escritura del nombre. De esta manera puedes tambi�n encontrar palabras mal escritas. Para buscar una expresi�n con un m�ximo de dos errores de escritura puedes usar:
El programa agrep puede ser bajado de sunsite sunsite.unc.edu/pub/Linux/util s/text/agrep-2.04.tar.Z o de su sitio original ftp://ftp.cs.arizona.edu/agrep/ Tambi�n est� glimpse. Esta es una poderosa utilidad de b�squeda. Utiliza un concepto similar a locate. Primero una base de datos necesita ser construida, para que la b�squedas sean r�pidas. Para construir una b�squeda indexada del contenido de todos los ficheros empezando en el directorio actual:
Despu�s de eso puedes buscar una cadena en todos los ficheros que fueron previamente indexados
glimpse tambi�n tolera errores de escritura (como agrep) y el -2 permite dos errores. glimpse est� disponible en http://glimpse.cs.arizona.edu/ Hay muchas utilidades de b�squeda disponibles para Unix y Linux especialmente. Por lo tanto este art�culo no puede estar completo. Si estas interesado en m�s trucos y utilidades como �stas echa un vistazo en los ficheros .lsm en http://sunsite.unc.edu/pub/Linux/utils P�sala bien y feliz b�squeda. Traducido por Ruben Sotillo |
This website is maintained by Miguel Angel Sepulveda © Guido Socher 1998 LinuxFocus 1998 |