miércoles, 24 de octubre de 2007

Comandos mas y mas part-3

El comando touch.

Este comando se utiliza para cambiar la fecha de acceso y/o modificación a un archivo. Su sintaxis es la que sigue:

touch [opción...] archivo...

Si el argumento archivo corresponde al nombre de un archivo que no existe, a menos que se le diga, touch creará el archivo con dicho nombre y sin ningún contenido. Sus opciones mas importantes son:

-a Cambia solamente el tiempo de acceso.
-c No crear archivos que no existían antes.
-d fecha

Usar fecha en lugar de la fecha actual. El formato de fecha es el siguiente: MMDDHHMMAAAA, por ejemplo para representar el 7 de abril de 2001 a la 1:00 a.m., se escribirá: 040701002001. Si el año a usar es el año actual, se puede obviar, entonces el ejemplo anterior quedaría así: 04070100.

Este comando es muy útil cuando se necesita recompilar cierta parte de un programa evitando compilar todo el programa completo, sólo aquellos sectores modificados o para poder hacer un hack.

El comando sort
Este comando se utiliza para ordenar líneas de texto a partir de varios criterios, su sintaxis es similar a la de todos los comandos:

sort [opción...] [archivo...]

Si no se le provee al menos un argumento archivo, este comando tomará su entrada de la entrada estándar. El criterio de orden que utiliza sort por defecto es alfabético, esto se debe tener en cuenta siempre que se necesite ordenar listas de números, si no se le especifica a sort que debe ordenar numéricamente, tomará a los números como una lista de palabras y el resultado no será el deseado. Por ejemplo, alfabéticamente el número 10 está antes que el número 2.

La lista de opciones de sort es la siguiente:

-c Chequear si el/los archivos están ordenados, pero no ordenar.
-d Considerar únicamente los caracteres alfanuméricos.
-n Utilizar criterio numérico de ordenamiento.
-o ARCHIVO Escribir el resultado en ARCHIVO en lugar de enviarlo a la salida estándar.
-r Devolver el resultado inverso del ordenamiento.
-t SEP Utilizar SEP como separador en lugar de un espacio en blanco.
-T DIR Usar DIR como directorio temporal en lugar de /tmp.

El comando grep
Escribir en salida estándar aquellas líneas que concuerden con un patrón. Su sintaxis es como sigue:

grep [opciones] PATRÓN [ARCHIVO...]
grep [opciones] [-e PATRÓN | -f ARCHIVO] [ARCHIVO...]

Este comando realiza una búsqueda en los ARCHIVOs (o en la entrada estándar, si no se especifica ninguno) para encontrar líneas que concuerden con PATRÓN. Por defecto grep imprime en pantalla dichas líneas. Sus opciones mas interesantes son:

-c Modifica la salida normal del programa, en lugar de imprimir por salida estándar las líneas coincidentes, imprime la cantidad de líneas que coincidieron en cada archivo.
-e PATRÓN Usar PATRÓN como el patrón de búsqueda, muy útil para proteger aquellos patrones de búsqueda que comienzan con el signo «-».
-f ARCHIVO Obtiene los patrones del archivo ARCHIVO.
-H Imprimir el nombre del archivo con cada coincidencia.
-r Buscar recursivamente dentro de todos los subdirectorios del directorio actual.

El patrón de búsqueda normalmente es una palabra o una parte de una palabra. También se pueden utilizar expresiones regulares, para realizar búsquedas mas flexibles, por ejemplo, si se quisiera buscar la ocurrencia de todas las palabras que comiencen con «a» minúscula, la ejecución del comando sería algo así:

usuario@maquina:~/$ grep a* archivo

El tema de manejo de expresiones regulares es bastante largo y complejo, mas adelante se dará con mas detalle.

El comando locate

locate es un comando de búsqueda de archivos, bastante parecido al find. La diferencia de locate es que la búsqueda la hace en una base de datos indexada para aumentar significativamente la velocidad de respuesta. Esto quiere decir, que locate realmente no busca en el disco del sistema, sino que en un archivo con la lista de todos los archivos que existen en el GNU/Linux. Generalmente todas las distribuciones de GNU/Linux ejecutan a una hora determinada (generalmente cerca de las 4:00am, ya que tarda algún tiempo realizar esta tarea) un comando para actualizar la base de datos que utiliza locate, dicho comando se llama updatedb. Su sintaxis es:

locate PATRÓN

Donde PATRÓN corresponde al mismo tipo de patrón que en el comando find. Ejemplo de ejecución:

usuario@maquina:~/$ locate locate
/usr/bin/locate
/usr/lib/locate
/usr/lib/locate/bigram
/usr/lib/locate/code
/usr/lib/locate/frcode
/usr/share/doc/kde/HTML/en/kcontrol/kcmlocate.docbook.gz
/usr/share/doc/xlibs-dev/XdbeAllocateBackBufferName.3.html
/usr/share/doc/xlibs-dev/XdbeDeallocateBackBufferName.3.html
/usr/share/doc/xlibs-dev/XtAllocateGC.3.html
/usr/share/emacs/20.7/lisp/locate.elc
/usr/share/gnome/help/gsearchtool/C/locate.png
/usr/share/man/man1/locate.1.gz
/usr/share/man/man5/locatedb.5.gz
/usr/X11R6/man/man3/XdbeAllocateBackBufferName.3x.gz
/usr/X11R6/man/man3/XdbeDeallocateBackBufferName.3x.gz
/usr/X11R6/man/man3/XtAllocateGC.3x.gz
/var/lib/locate
/var/lib/locate/locatedb
/var/lib/locate/locatedb.n

Como se puede observar en el ejemplo, locate ha listado todos aquellos archivos que posean la palabra «locate» en su nombre (los directorios están incluidos).

Saluos y creo qu ees de utilidad

anemias

2 comentarios:

Anónimo dijo...

Wow! ¡Gracias! Siempre quise escribir en mi sitio algo así. ¿Puedo tomar parte de tu post en mi blog?

linuxparadummies dijo...

si no hay problema cuando gustes.. que bueno que es de utilidad

saludos