En el mundo de la informática, los comodines son herramientas esenciales para simplificar tareas y realizar búsquedas eficientes. Permiten seleccionar múltiples elementos, como archivos o directorios, utilizando expresiones que representan patrones en lugar de nombres exactos.
Un comodín es un carácter o secuencia de caracteres que se utiliza para representar a otro u otros caracteres en una operación de búsqueda o de concordancia de patrones. Se utiliza habitualmente en informática y programación para buscar o manipular archivos, datos o texto.
El objetivo de los comodines es buscar y hacer coincidir patrones específicos de texto dentro de un cuerpo de texto mayor. Suelen utilizarse en las funciones de búsqueda y sustitución de editores de texto, procesadores de texto y lenguajes de programación.
Para utilizar comodines en una interfaz de línea de comandos, normalmente debes incluir el carácter o caracteres comodín en el comando que estás ejecutando. Por ejemplo, "ls *.txt" listaría todos los archivos del directorio actual con la extensión ".txt".
En una interfaz de línea de comandos, los comodines se suelen utilizar para especificar nombres de archivos o directorios en un comando, mientras que en una interfaz gráfica de usuario se suelen utilizar para filtrar o buscar archivos o datos.
Un ejemplo de carácter comodín es el asterisco (*), que representa cualquier secuencia de caracteres (incluida ninguna) en una operación de búsqueda o de concordancia de patrones.
Introducción a Linux. M7. Uso de comodines para buscar archivos | 50/107 | UPV
Tipos de Comodines
A continuación, exploraremos los comodines más comunes y cómo utilizarlos eficazmente:
Asterisco (*)
El asterisco es uno de los comodines más utilizados. Sirve para indicar que en el lugar donde se encuentra puede haber cualquier cadena de caracteres. Por ejemplo:
rm *.txt
Esta instrucción incluye todos los ficheros que tengan cualquier nombre, pero se obliga a que la extensión sea txt.
Ejemplo:
rm /home/alumno/*.jpg
Borra todas las imágenes jpg del directorio /home/alumno
cp -r /home/a* /var/copias/
Copia todos los elementos que empiecen por a (ficheros y directorios) al directorio /var/copias/

Interrogación (?)
La interrogación representa cualquier carácter, pero repetido unicamente una vez. El asterisco se podía sustituir por uno o varios caracteres, pero no así la interrogación.
Ejemplos:
rm /home/alumno/carta?.txt
Borra los ficheros que tengan cualquier carácter entre la segunda a y el punto, como carta1.txt, cartas.txt, carta_.txt. Pero no lo cumplen nombres como carta10.txt, carta.txt o micarta1.txt
Corchetes ([ ])
Si queremos limitar los caracteres que consideramos válidos o especificar un rango determinado, podemos introducir éstos entre corchetes. Es decir, si ponemos entre corchetes varios caracteres o le especificamos un rango, indicamos que sólo los especificados serán válidos para esa posición. Un rango estará compuesto por el carácter de inicio seguido de un guión y del carácter final del rango, por ejemplo: foto[1-9].jpg
Ejemplos:
rm /home/alumno/carta[s1_].txt
Borra los ficheros que entre la segunda a y el punto tengan una s o un 1 o un guión bajo, es decir, sólo serán válidos los nombres cartas.txt, carta1.txt y carta_.txt
cp -r /home/alumno[2-9] /var/copias/
Copia todos los elementos que empiecen por alumno (ficheros y directorios) seguidos de un número de 2 al 9, al directorio /var/copias/
ls -l /home/[A-Z]*
Muestra los elementos que empiecen por una mayúscula
Todos los comodines se pueden combinar hasta encontrar la expresión que mejor se ajuste a los elementos que queremos que se vean afectados.
Algunos comandos del depurador tienen parámetros de cadena que aceptan una variedad de caracteres comodín. Corchetes ( [ ] ) que contienen una lista de caracteres representan cualquier carácter individual de la lista. Exactamente un carácter de la lista coincide. Dentro de estos corchetes, puede usar un guión (-) para especificar un intervalo.
Un signo de número (#) representa cero o más de los caracteres anteriores. Por ejemplo, Lo#p coincide con "Lp", "Lop", "Loop", "Looop", etc.
Un signo más (+) representa uno o varios de los caracteres anteriores. Por ejemplo, Lo+p es igual que Lo#p, salvo que Lo+p no coincide con "Lp". Del mismo modo, m[ia]+n es igual que m[ia]#n, excepto que m[ia]+n no coincide con "mn".
Si tiene que especificar un signo de número literal (#), signo de interrogación (?), corchete de apertura ([), corchete de cierre (]), asterisco (*), o signo más (+), debe agregar una barra diagonal inversa ( \ ) delante del carácter. Los guiones siempre son literales cuando no los encierra entre corchetes.
Los parámetros que especifican símbolos también admiten algunas características adicionales. Además de los caracteres comodín de cadena estándar, puede usar un carácter de subrayado (_) antes de una expresión de texto que se usa para especificar un símbolo. Al hacer coincidir esta expresión con un símbolo, el depurador trata el carácter de subrayado como cualquier cantidad de caracteres de subrayado, incluso cero. Esta característica solo se aplica cuando se buscan símbolos coincidentes. No se aplica a expresiones comodín de cadena en general.
Ejemplos Prácticos
La siguiente tabla muestra los nombres de fichero que cumplen las expresiones indicadas en la primera fila:
| Nombre \ Expresiones | mic*.* | mi[cr]*.jpg | [c-t]*t*.??? |
|---|---|---|---|
| micasa.jpg | SI | SI | NO |
| micarta.txt | SI | NO | SI |
| tucarta.txt.tar | NO | NO | NO |
| micara | NO | NO | NO |
| caseta.jpg | NO | NO | SI |
| miropa.jpg | NO | SI | NO |
| micoche.jpg | SI | SI | NO |
El uso de comodines permite que las operaciones de búsqueda y sustitución sean más versátiles y eficaces.