3.3. Patrones de englobamiento del shell

Probablemente Ud. ya usa caracteres de englobamiento sin saberlo. Cuando Ud. especifica un archivo en Windows o cuando Ud. busca un archivo, Ud. usa * para hacer coincidir con una cadena aleatoria de caracteres. Por ejemplo, *.txt hace coincidir a todos los archivos cuyo nombre termina con .txt. Nosotros también los usamos mucho en la última sección. Pero el englobamiento va más allá que el simple *.

Cuando Ud. ingresa un comando como ls *.txt y presiona Intro, la tarea de encontrar cuales archivos se corresponden con el patrón *.txt no la realiza el comando ls, sino el shell en sí mismo. Esto requiere de una pequeña explicación sobre como interpreta el shell la línea de comandos. Cuando Ud. ingresa:

$ ls *.txt
leerme.txt  recetas.txt

primero la línea de comandos se separa en palabras (ls y *.txt, en este ejemplo) . Cuando el shell ve un * en una palabra, interpretará toda la palabra como un patrón de englobamiento y la reemplazará con los nombres de todos los archivos que se correspondan con el patrón. Por lo tanto, justo antes que el shell la ejecute, la línea se convirtió en la línea ls leerme.txt recetas.txt, lo que da el resultado esperado. El shell reacciona así frente a otros caracteres como:

Aquí tiene algunos patrones y su significado:

Notas

[1]

¡Cuidado! Aunque esto es cierto bajo GNU/Linux, puede que no lo sea bajo otros sistemas operativos tipo Unix. Esta característica depende del orden de comparación. En algunos sistemas, [a-z] se corresponderá con a, A, b, B, (...) , z. Y ni siquiera mencionamos el hecho que algunos idiomas tienen caracteres acentuados...


Tux sobre Estrella por MandrakeSoft Linux es una marca registrada de Linus Torvalds. Todas las otras marcas registradas y copyrights son la propiedad de sus respectivos dueños.
A menos que se diga lo contrario, todo el contenido de estas páginas y todas las imágenes tienen Copyright de MandrakeSoft S.A. y de MandrakeSoft Inc. 2001.
http://www.mandrakelinux.com/