-
Notifications
You must be signed in to change notification settings - Fork 0
02 Wildcards
- Qué son los Wildcards
- Patrones Wildcard
- Wildcards Estándar
- Clases de Caracteres
- Clases POSIX Predefinidas
- Ejemplos Avanzados
- Referencias
Los wildcards, o globbing patterns son un conjunto de caracteres que permiten describir patrones de texto (similar a RegEx), por ejemplo, nombres de archivos o texto dentro de un archivo.
Los wildcards son muy útiles en Linux, especialmente al trabajar con múltiples archivos a través de comandos. Los wildcards son tan útiles y poderosos que shells como Bash, Zsh y Fish lo incluyen como una función de shell integrada.
Un patrón wildcard es cualquier string que contiene uno o más caracteres
especiales como ?, o * o expresiones como [...], o {...}. El
globbing es la operación que expande un patrón wildcard en una lista de
nombres de archivos que coinciden con el patrón.
Tip
Para usar un carácter especial como literal, puedes:
-
Escaparlo con
\(e.g.,archivo-\[1-4\]) -
Entrecomillarlo con comillas simples
'(e.g.,'archivo-[1-4]') para evitar la expansión completa
Tip
Para más información acerca de wildcards estándar (globbing patterns), ejecuta
el comando man 7 glob para visitar su man page.
| Wildcard | Descripción | Ejemplo |
|---|---|---|
| * | Coincide con cero o más caracteres cualesquiera |
ls *.txt: lista archivos con extensión .txt
|
| ? | Coincide con exactamente un carácter cualquiera |
ls file?.txt: lista archivos como file1.txt, filea.txt, file!.txt
|
| {...} | Expande múltiples alternativas de nombres, secuencias, y wildcards. Cada alternativa es separada por una coma |
ls {*.docx,*.pdf}: lista archivos con extensión .docx o .pdftouch archivo-{1..9}.md: crea archivo-1.md, archivo-2.md, ..., archivo-9.mdls {test*,demo*}.txt: lista archivos .txt que inician con "test" o "demo" |
| Clase de caracteres | Descripción | Ejemplo |
|---|---|---|
| [...] | Coincide con un carácter perteneciente al conjunto especificado |
ls [aeiou]*: lista archivos que inician con vocalls *[0-7]: lista archivos que terminan con dígito octal |
| [!...] | Coincide con un carácter no perteneciente al conjunto especificado |
ls [!aeiou]*: lista archivos que no inician con vocal |
| :clase: | Coincide con un carácter perteneciente a una clase POSIX predefinida |
ls *[[:digit:]]: lista archivos que terminan en números |
| Clase de caracteres | Descripción | Wildcard equivalente | Ejemplo |
|---|---|---|---|
| [:upper:] | Letras mayúsculas | [A-Z] |
ls [[:upper:]]*: lista archivos que comienzan con mayúsculas |
| [:lower:] | Letras minúsculas | [a-z] |
ls [[:lower:]]*: lista archivos que comienzan con minúsculas |
| [:alpha:] | Caracteres alfabéticos | [A-Za-z] |
ls [[:alpha:]]*: lista archivos que comienzan con letras |
| [:digit:] | Dígitos decimales | [0-9] |
ls [[:digit:]]*: lista archivos que comienzan con un dígito |
| [:alnum:] | Caracteres alfanuméricos | [A-Za-z0-9] |
ls *[[:alnum:]]: lista archivos terminados en letra o dígito |
| [:space:] | Caracteres de espaciado (espacios, tabs, saltos de línea, etc.) | [ \t\n\r\f\v] |
ls *[[:space:]]*: lista archivos con espacios en el nombre |
| [:blank:] | Espacios y tabs únicamente | [ \t] |
ls [[:blank:]]*: lista archivos que comienzan con espacio o tab |
| [:graph:] | Caracteres gráficamente imprimibles, excluyendo espacios | [![:space:]] |
ls [[:graph:]]*: lista archivos que comienzan con carácter visible |
| [:print:] | Caracteres gráficamente imprimibles, incluyendo espacios | [[:graph:][:space:]] |
ls [[:print:]]*: lista archivos que comienzan con carácter imprimible |
| [:punct:] | Caracteres de puntuación (gráficos no alfanuméricos) | [![:alnum:][:space:]] |
ls [[:punct:]]*: lista archivos que comienzan con puntuación |
| [:cntrl:] | Caracteres de control | [\x00-\x1F\x7F] |
ls *[[:cntrl:]]*: lista archivos con caracteres de control |
| [:xdigit:] | Dígitos hexadecimales | [0-9A-Fa-f] |
ls [[:xdigit:]]*: lista archivos que comienzan con dígito hexadecimal |
Important
Los wildcards equivalentes mostrados son aproximaciones. Las clases POSIX pueden incluir caracteres específicos del locale que los rangos básicos podrían no cubrir completamente.
# Combinar múltiples patrones
# Ejemplo: lista archivos que inician con letra y terminan con número
ls [[:alpha:]]*[[:digit:]]
# Usar negación con rangos
# Ejemplo: lista archivos que no inician con minúscula
ls [!a-z]*
# Expansión de llaves con rangos
# Ejemplo: crea test-a-1.txt, test-a-2.txt, etc.
touch test-{a..c}-{1..3}.txt
# Clases dentro de rangos
# Ejemplo: lista archivos que inician con dígito o letras a-f
ls [[:digit:]a-f]*- The Linux Documentation Project (s.f.). Wildcards. Consultado el 27 de julio de 2025 de https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/x11655.htm
- Definición y Estructura de un Shell
- Los Diferentes Tipos de Shell
- Definición y Sintaxis de un Comando
- Variables, Alias y Funciones
- Comandos de Utilidad y Consulta
- Linux como Sistema Multiusuario
- Introducción a los Usuarios y Grupos
- Gestión de Usuarios
- Gestión de Grupos
- Gestión de Contraseñas
- Búsqueda de Información de Usuarios y Grupos con
getent
- Atributos de Archivos: Propiedad y Permisos de los Archivos
- Cambio de Propiedad y Permisos
umask: Permisos Predeterminados de Archivos- Cambio de Identidad y Privilegios
- Gestión de Paquetes (Package Management)
- Compresión y Archivado de Archivos
- Optimización y Conversion de Archivos