glob(7) Miscellaneous Information Manual glob(7) NOMBRE glob - Generacion de nombres de rutas de archivos DESCRIPCION Tiempo atras, en UNIX V6 existia una aplicacion /etc/glob que expandia patrones con comodines. Actualmente es una orden integrada en la shell. Actualmentes, esta disponible una rutina de biblioteca glob(3) que efectua esta funcion en las aplicaciones de usuario. Las reglas son como sigue (POSIX.2, 3.13). Concordancia de comodines Se considera que una cadena de caracteres es un patron con comodines si contiene al menos uno de los siguientes caracteres '?', '*' o '['. La generacion de nombres de ruta ('globbing') es la operacion que expande un patron con comodines formando una lista de nombres de ruta de archivos que concuerdan con el patron. La concordancia se define asi: Un signo de cierre de interrogacion '?' (no entre corchetes) concuerda con cualquier caracter simple. Un asterisco '*' (no entre corchetes) concuerda con cualquier cadena de caracteres, incluyendo la cadena vacia. Clases de caracteres Una expresion "[...]" donde el primer caracter despues del '[' inicial no es un '!' coincide con un solo caracter, es decir, cualquiera de los caracteres entre corchetes. La cadena entre corchetes no puede estar vacia; por lo tanto, se permite ']' entre corchetes, siempre que sea el primer caracter. (Por lo tanto, "[][!]" coincide con los tres caracteres '[', ']' y '!'.) Intervalos Existe una convencion especial: dos caracteres separados por '-' denotan un rango. (Por lo tanto, "[A-Fa-f0-9]" es equivalente a "[ABCDEFabcdef0123456789]".) Se puede incluir '-' en su significado literal convirtiendolo en el primer o ultimo caracter entre corchetes. (Por lo tanto, "[]-]" coincide solo con los dos caracteres ']' y '-', y "[--0]" coincide con los tres caracteres '-', '.' y '0', ya que '/' no puede coincidir). Complementacion Una expresion "[!...]" coincide con un solo caracter, es decir, cualquier caracter que no coincida con la expresion obtenida al eliminar el primer '!'. (Por lo tanto, "[!]a-]" coincide con cualquier caracter excepto ']', 'a' y '-'.) Se puede eliminar el significado especial de '?', '*' y '[' precediendolos de una barra invertida o, si esto forma parte de una linea de ordenes de la shell: entrecomillandolos. Entre corchetes, estos caracteres se representan a si mismos. Por lo tanto, "[[?*\]" coincide con los cuatro caracteres '[', '?', '*' y '\'. Nombres de Ruta La funcion de globbing se aplica a cada componente de una ruta de acceso por separado. Un caracter '/' en una ruta de acceso no puede coincidir con un comodin '?' o '*', ni con un rango como "[.-0]". Un rango que contenga un caracter '/' explicito es sintacticamente incorrecto. (POSIX requiere que los patrones sintacticamente incorrectos no se modifiquen). Si un nombre de archivo comienza con '.', este caracter debe coincidir explicitamente. (Por lo tanto, rm * no eliminara .profile, e tar c * no archivara todos los archivos; tar c . es mejor). Listas vacias La bonita y simple regla dada arriba: "expandir un patron de comodines a una lista de nombres de caminos que concuerdan" fue la definicion original de UNIX. Le permitia a uno tener patrones que se `expandian' a una lista vacia, como en xv -wait 0 *.gif *.jpg donde quizas no habia ningun archivo gif presente (y esto no es un error). Sin embargo, POSIX requiere que un patron de comodines se deje sin cambios cuando sea sintacticamente incorrecto o cuando la lista de nombres de ruta concordantes este vacia. Con bash uno puede forzar el comportamiento clasico mediante esta orden: shopt -s nullglob (Problemas similares ocurren por todas partes. Por ejemplo, si un antiguo script contiene rm `find . -name "*~"` una adapatacion moderna requerira rm -f no-tal-archivo `find . -name "*~"` para evitar mensajes de error de rm llamado con una lista de argumentos vacia.) NOTAS Expresiones regulares Observe que los patrones de comodines no son expresiones regulares, aunque son algo similares. Lo primero, concuerdan con nombres de ficheros en vez de con texto, y lo segundo, los convenios no son los mismos: p.ej., en una expresion regular '*' significa cero o mas copias de lo precedente. Ahora que las expresiones regulares tienen expresiones entre corchetes donde la negacion se indica con '^', POSIX ha declarado que el efecto de un patron comodin "[^...]" no esta definido. Clases de caracteres e internacionalizacion Naturalmente, los rangos se concibieron originalmente como rangos ASCII, de modo que "[ -%]" representa "[ !"#$%]" y "[a-z]" representa 'cualquier letra minuscula'. Algunas implementaciones de UNIX generalizaron esto, de modo que un rango X-Y representa el conjunto de caracteres con codigo entre los codigos de X e Y. Sin embargo, esto requiere que el usuario conozca la codificacion de caracteres utilizada en el sistema local y, ademas, no resulta conveniente si la secuencia de intercalacion del alfabeto local difiere del orden de los codigos de caracteres. Por lo tanto, POSIX extendio considerablemente la notacion de corchetes, tanto para patrones comodin como para expresiones regulares. Anteriormente, vimos tres tipos de elementos que pueden aparecer en una expresion de corchetes: (i) la negacion, (ii) caracteres individuales explicitos y (iii) rangos. POSIX especifica rangos de una manera internacionalmente mas util y anade tres tipos mas: (III) Los rangos X-Y comprenden todos los caracteres que caigan entre X e Y (incluidos) en la secuencia de clasificacion en curso segun se defina en la categoria LC_COLLATE para la localizacion o escenario actual. (IV) Clases de caracteres nombradas, como [:alnum:] [:alpha:] [:blank:] [:cntrl:] [:digit:] [:graph:] [:lower:] [:print:] [:punct:] [:space:] [:upper:] [:xdigit:] de esta manera, se puede decir "[[:lower:]]" en lugar de "[a-z]", y que funcione tambien en Dinamarca, donde hay tres letras despues de 'z' en el alfabeto. Estas clases de caracteres se definen mediante la categoria LC_CTYPE en la configuracion regional actual. (v) Simbolos de intercalacion, como "[.ch.]" o "[.a-acute.]", donde la cadena entre "[." y ".]" es un elemento de intercalacion definido para la configuracion regional actual. Tenga en cuenta que puede ser un elemento multicaracter. (vi) Expresiones de clase de equivalencia, como "[=a=]", donde la cadena entre "[=" y "=]" es cualquier elemento de cotejo de su clase de equivalencia, segun lo definido para la configuracion regional actual. Por ejemplo, "[[=a=]]" podria ser equivalente a "[aaaaa]", es decir, a "[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]". VEASE TAMBIEN sh(1), fnmatch(3), glob(3), locale(7), regex(7) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Gerardo Aburruzaga Garcia , Miguel Perez Ibars y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Linux man-pages 6.18 8 Febrero 2026 glob(7)