Uso de comodines en el intérprete de comandos: El asterisco, la interrogación y los corchetes
Hasta el momento hemos estudiado comandos para realizar acciones sobre elementos del sistema de ficheros, pero de uno en uno. Se necesita una forma de aplicar un comando a varios elemento y para ello necesitamos conocer el uso de los comodines. Con ellos podremos crear expresiones que incluyan a varios ficheros o directorios sobre los que se va a aplicar un determinado comando, por ejemplo borrar todos los ficheros de un directorio.
En el intérprete de comandos, identificamos a un elemento porque coincide con el nombre y la ruta que tecleamos en la orden, si pongo rm carta.txt el sistema eliminará el fichero que coincida con el nombre carta.txt. La manera de seleccionar más elementos es utilizando expresiones que hagan referencia a más de un nombre, es decir, que varios elementos con nombres similares cumplan lo que indicamos en una expresión usando caracteres que tienen un significado especial, por ejemplo rm *.txt
Uso del asterisco
El asterisco sirve para indicar que en el lugar donde se encuentra puede haber cualquier cadena de caracteres. Es decir, *.txt indica que se incluyen todos los ficheros que tengan cualquier nombre, pero se obliga a que la extensión sea txt.
Ejemplos:
rm /home/alumno/*.jpg
Borra todas la 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/
Uso de la 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.txtcp -r /home/a* /var/copias/
Copia todos los elementos que empiecen por a (ficheros y directorios) al directorio /var/copias/
Uso de los 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_.txtcp -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
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 |
Explicaciones en video
Si te parece interesante suscríbete a mi canal de Youtube: Aprende Linux