Índice

Sustitución de nombres de archivos

Muchos comandos toman nombres de archivo como argumento. Estos últimos se pueden citar literalmente o se pueden especificar de forma más genérica. El shell propone un cierto número de caracteres especiales que permiten fabricar expresiones utilizadas como plantillas de nombres de archivo.

1. Expresiones básicas

a. El carácter *

Representa un conjunto de caracteres cualquiera.

Ejemplo

$ ls  
f12 f1.i FICa fic.c fic.s miscript.pl MISCRIPT.pl oso.c

Mostrar todos los nombres de archivo que terminen por .c:

$ ls *.c  
fic.c oso.c

Mostrar todos los nombres de archivo que comiencen por la letra f:

$ ls f*  
f12 f1.i fic.c fic.s

b. El carácter ?

Representa un carácter cualquiera.

Ejemplos

Mostrar todos los nombres de archivo que tengan una extensión compuesta de un solo carácter:

$ ls *.?  
f1.i fic.c fic.s oso.c

Mostrar todos los nombres de archivo compuestos de cuatro caracteres:

$ ls ???? 
f1.i FICa

c. Los caracteres [ ]

Los corchetes permiten especificar la lista de caracteres que se esperan en una posición concreta en el nombre del archivo. También es posible usar las nociones de intervalo y negación.

Ejemplos

Archivos cuyo nombre empiece por f u o y termine por el carácter . seguido de minúscula:

$ ls [fo]*.[a-z]  
f1.i fic.c fic.s oso.c

Archivos cuyo nombre tiene en el segundo carácter una mayúscula, una cifra o la letra i. Los dos primeros caracteres tendrán a continuación ...