Vous êtes sur la page 1sur 7

Caracteres Comodn y Expresiones Regulares para Linux

Una caracterstica importante de la mayora de los intrpretes de comandos en Unix es la capacidad para referirse a ms de un archivo usando expresiones regulares. Linux usa los comodn para la sustitucin de caracteres. Estos caracteres comodn nos puede ser de mucha utilidad cuando lazamos el comado de ls para buscar un o varios de archivos o directorios cuyo nombre contiene una determinada secuencia de caracteres. El comodn *: sustutuye una cadena de caracteres en el nombre del archivo o directorio. Cuando se usa el carcter * para referirse al nombre de un archivon o directorio, el intrprete de comandos lo sustituye por todas las combinaciones posibles de los archivos y directorios dentro del directorio que estamos refiriendo. Por ejemplo supongamos que en el directorio del usuario aceitunero tenemos varios directorios como puede ser aceitunero, antonio y invitado. Si observamos todos estos directorios termina en o y si lanzamos un ls nos mostrar todos los archivos y directorios que tenemos: aceitunero@Pc15:~$ ls aceitunero Documentos Imgenes Plantillas Videos antonio Escritorio invitado Pblico Descargas examples.desktop Msica salida.txt Para listar todos los archivos que termina con la letra o, usaremos esta lnea de comandos, el resultado sera: aceitunero@Pc15:~$ ls *o aceitunero: antonio: Escritorio: Imagenes_ISO introduccion_linux_2010 invitado: Pblico: Como podemos ver, el comodn * ha sido sustituido todos los caracteres anteriores al caracater que se ha introducido y ha realizado las combinaciones posibles para mostrar los archivos y directorios que terminen en o del directorio donde nos encontramos. Otros ejemplos sera: aceitunero@Pc15:~$ ls a* aceitunero: total 0 antonio: total 0

El comodn ?: Este carcter comodn slo sustituye un carcter, por ejemplo: aceitunero@Pc15:~$ ls -ld antoni? drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio aceitunero@Pc15:~$ ls -ld ?*o drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio drwxr-xr-x 5 aceitunero aceitunero 4096 2011-05-05 16:17 Escritorio drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 invitado drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Pblico Los caracteres comodn nos permiten referirse a ms de un archivo a la vez. Por ejemplo, tambin podemos usarlo con los comandos cp y mv para copiar o mover varios archivos de una vez. Por ejemplo: aceitunero@Pc15:~$ mkdir archivos_host aceitunero@Pc15:~$ cp /etc/host* /home/aceitunero/archivos_host/ aceitunero@Pc15:~$ cd archivos_host/ aceitunero@Pc15:~/archivos_host$ ls host.conf hostname hosts hosts.allow hosts.deny Lo que estamos haciendo es copiar todos los archivos del directorio /etc que comiencen con host al directorio /home/aceitunero/archivos_host/. El comodn [ ]: Los corchete se utilizan para pasar un rango de caracateres, que tomar para realizar la busqueda, por ejemplo: aceitunero@Pc15:~$ ls -ld [a-c]* drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-05 16:35 archivos_host -rw-r--r-- 1 aceitunero aceitunero 79 2011-05-04 19:40 basura.txt El listado que nos muestra son los archivos o directorios que comienza en a hasta la c incluidad y como hemos pasado tambin el carcter comodn * tomar cualquier carcter. Otros ejemplos: aceitunero@Pc15:~$ ls -ld [a-c]*o drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio

aceitunero@Pc15:~$ ls -ld *[a-c] drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Msica El comodn !: La exclamacin se utilizan para denegar el rango de caracteres que se pasa, es decir, tomara todos los caractes menos los que se pasen para realizar la busqueda, por ejemplo: aceitunero@Pc15:~$ ls -ld [!a-c]* drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Descargas drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Documentos drwxr-xr-x 5 aceitunero aceitunero 4096 2011-05-05 16:17 Escritorio drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Imgenes drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 invitado drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Msica drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Plantillas drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Pblico drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Videos El listado que nos muestra son los archivos o directorios que NO comienza por a hasta la c incluidad y como hemos pasado tambin el carcter comodn * tomar cualquier carcter. Otros ejemplos: aceitunero@Pc15:~$ ls -ld [!a-c]*o drwxr-xr-x 5 aceitunero aceitunero 4096 2011-05-05 16:17 Escritorio drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 invitado drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Pblico

aceitunero@Pc15:~$ ls -ld *[!o-s] drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-05 16:35 archivos_host drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Msica El comodn { }: Las llaves se utilizan para pasar un numero de caracteres, que se usarn para realizar la busqueda de los archivos y directorios que contenga eso caracteres, por ejemplo: aceitunero@Pc15:~$ ls -ld {a,b}* drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-05 16:35 archivos_host -rw-r--r-- 1 aceitunero aceitunero 79 2011-05-04 19:40 basura.txt El listado que nos muestra son los archivos o directorios que comienza en a y los que comienzan por b y con el carcter comodn * tomar cualquier otro carcter. Otros ejemplos:

aceitunero@Pc15:~$ ls -ld {a,c}*o ls: no se puede acceder a c*o: No existe el fichero o el directorio drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 aceitunero drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 19:30 antonio aceitunero@Pc15:~$ ls -ld *{a,c} drwxr-xr-x 2 aceitunero aceitunero 4096 2011-05-04 17:39 Msica Como podeis observa estas convinaciones de los comodines nos puede ayudar a la hora de copiar, mover, listar, etc. un conjunto de archivos o directorios de una forma sencilla. Espero que os sea de ayuda a todos un saludo: Antonio

Caracteres comodn

Una caracterstica importante de la mayora de los intrpretes de comandos en Unix es la capacidad para referirse a ms de un archivo usando expresiones regulares. En su forma ms simple, esto consiste en la utilizacin de los llamados comodines que permiten referirse a, por ejemplo, todos los archivos cuyo nombre contiene una determinada secuencia de caracteres.
6.1 Los comodines * y ?

El comodn * hace referencia cualquier cadena de caracteres en el nombre del archivo. Cuando se usa el carcter * para referirse al nombre de un archivo, el intrprete de comandos lo sustituye por todas las combinaciones posibles provenientes de los archivos en el directorio al cual nos estamos refiriendo. Veamos un ejemplo rpido. Supongamos que diego tiene los archivos hugo, paco y luis en el directorio actual.
/home/diego$ ls hugo luis paco /home/diego$

Para listar todos los archivos con la letra o en su nombre, usamos la orden:
/home/diego$ ls *o* hugo paco

/home/diego$

Como podemos ver, el comodn * ha sido sustituido con todas las combinaciones posibles que coincidan de entre los archivos del directorio actual. El uso de * solo, hace referencia a todos los archivos, puesto que todos los caracteres coinciden con el comodn.
/home/diego$ ls * hugo luis paco /home/diego$

Veamos algunos otros ejemplos:


/home/diego$ ls h* hugo /home/diego$ ls *is luis /home/diego$ ls *u* hugo luis /home/diego$ ls p*o paco /home/diego$

El proceso de la sustitucin de caracteres como * en nombres de archivos es llamado expansin de comodines y es efectuado por el intrprete de comandos. Esto es importante: los comandos, como ls, nunca ven el * en su lista de parmetros. Es el intrprete quien expande los comodines para incluir todos los nombres de archivos que se adaptan. Por lo tanto la orden:
/home/diego$ ls *o*

es expandida para obtener


/home/diego$ ls hugo paco

Otro carcter comodn es ?. Este carcter comodn slo expande un nico carcter. Luego ls ? mostrar todos los nombres de archivos con un carcter de longitud, y ls termca?, por ejemplo, mostrar termcap pero no termcap.backup. Aqu tenemos otro ejemplo:

/home/diego$ ls hu?o hugo /home/diego$ ls p??o paco /home/diego$ ls ???s luis /home/diego$

Como podemos ver, los caracteres comodn nos permiten referirse a ms de un archivo a la vez. En el sumario de comandos bsicos dijimos que cp y mv pueden copiar o mover mltiples archivos de una vez. Por ejemplo:
/home/diego$ cp /etc/s* /home/diego

copiar todos los archivos de /etc que comiencen con s al directorio /home/diego.
6.2 Los comodines y los archivos ocultos

Los comodines * y ? no coincidirn con nombres de archivos que comiencen con un punto (.). Estos archivos son tratados como ocultos. Los archivos de este tipo no son mostrados en un listado normal de ls y no son afectados por el uso de * y ?. Por ejemplo, ya hemos mencionado que cada directorio tiene dos entradas especiales: ., que hace referencia al directorio actual, y .., que se refiere al directorio padre. Como ya hemos visto, al usar ls esas dos entradas no se muestran:
/home/diego$ ls hugo luis paco /home/diego$

Si usamos el parmetro -a con ls podremos ver nombres de archivos que comienzan con .. Observemos:
/home/diego$ ls -a . .. .bash_profile .bashrc hugo luis paco

/home/diego$

Ahora podemos ver las dos entradas especiales, . y .., as como otros dos archivos ocultos: .bash_profile y .bashrc. Estos dos archivos son usados en el arranque por el intrprete de comandos bash cuando diego realiza el login.

Pgina siguiente Pgina anterior ndice g