Provided by: manpages-es_4.27.0-1_all bug

NOMBRE

       glob - Generación de nombres de rutas de archivos

DESCRIPCIÓN

       Tiempo  atrás,  en  UNIX V6  existía  una  aplicación  /etc/glob  que  expandía  patrones  con comodines.
       Actualmente es una orden integrada en la shell.

       Actualmentes, está disponible  una  rutina  de  biblioteca  glob(3)  que  efectúa  esta  función  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 patrón con comodines si contiene al menos uno de los
       siguientes caracteres '?', '*' o '['. La generación de nombres de ruta ('globbing') es la  operación  que
       expande  un  patrón con comodines formando una lista de nombres de ruta de archivos que concuerdan con el
       patrón. La concordancia se define así:

       Un signo de cierre de interrogación '?' (no entre corchetes) concuerda con cualquier carácter simple.

       Un asterisco '*' (no entre corchetes) concuerda con cualquier cadena de caracteres, incluyendo la  cadena
       vacía.

       Clases de caracteres

       Una  expresión "[...]" donde el primer carácter tras el '[' no es '!' concuerda con un carácter simple; a
       saber, cualquiera de los caracteres entre corchetes. La cadena entre corchetes no puede estar vacía;  por
       ello,  ']' puede estar entre corchetes siempre que sea el primer carácter. Así, "[][!]" concuerda con uno
       de los tres caracteres '[', ']' y '!'.

       Intervalos

       Existe  un  convenio especial: dos caracteres separados por '-' denotan un intervalo. (Así, "[A-Fa-f0-9]"
       equivale a "[ABCDEFabcdef0123456789]".) Se puede incluir '-' con su sentido literal  poniéndolo  como  el
       primer  o  el último carácter entre corchetes. (Así, "[]-]" concuerda justo con uno de los dos caracteres
       ']' y '-' y "[--0]" concuerda con los tres  caracteres  '-',  '.',  '0',  porque  no  es  posible  buscar
       concordancia de '/'.)

       Complementación

       Una expresión "[!...]" concuerda con un carácter simple; a saber, cualquier carácter que no concuerde con
       la  expresión  obtenida  al  quitar el '!' de ella. Así, "[!]a-]" concuerda con cualquier carácter simple
       excepto ']', 'a' y '-'.

       Uno puede anular el significado especial de '?', '*' y '[' haciéndolos preceder de una barra invertida o,
       en caso de formar parte de una orden de la shell, entrecomillándolos. Entre corchetes,  estos  caracteres
       se representan a sí mismos. Así, "[[?*\]" concuerda con uno de los cuatro caracteres '[', '?', '*' y '\'.

   Nombres de Ruta
       La  expansión se aplica a cada uno de los componentes de un nombre de ruta por separado. '/' en un nombre
       de ruta no puede concordar con un comodín '?' ni '*', ni con un rango como "[.-0]". Un intervalo no puede
       contener '/'; constituye un  error de sintaxis. El estándar POSIX especifica que los patrones incorrectos
       no debe modificarse.

       Si un nombre de fichero comienza con un punto '.', este carácter  debe  concordar  explícitamente.  (Así,
       rm * no borrará, por ejemplo, .profile, y tar c * no archivará todos sus ficheros; tar c . es mejor.)

   Listas vacías
       La  bonita y simple regla dada arriba: "expandir un patrón de comodines a una lista de nombres de caminos
       que concuerdan" fue la definición original de UNIX. Le permitía a uno tener patrones que se `expandían' a
       una lista vacía, como en

           xv -wait 0 *.gif *.jpg

       donde quizás no había ningún archivo gif presente (y esto no es un error). Sin  embargo,  POSIX  requiere
       que un patrón de comodines se deje sin cambios cuando sea sintácticamente incorrecto o cuando la lista de
       nombres  de  ruta  concordantes  esté vacía. Con bash uno puede forzar el comportamiento clásico mediante
       esta orden:

           shopt -s nullglob

       (Problemas similares ocurren por todas partes. Por ejemplo, si un antiguo script contiene

           rm `find . -name "*~"`

       una adapatación moderna requerirá

           rm -f no-tal-archivo `find . -name "*~"`

       para evitar mensajes de error de rm llamado con una lista de argumentos vacía.)

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 expresión regular '*' significa cero o más copias de lo precedente.

       Ahora que las expresiones regulares tienen expresiones de corchetes donde la negación se  indica  por  un
       acento circunflejo '^', POSIX ha declarado que el efecto de un patrón "[^...]" está indefinido.

   Clases de caracteres e internacionalización
       Por  supuesto los rangos significaban originalmente rangos ASCII, asíque "[ -%]" significaba "[ !"#$%]" y
       "[a-z]" quería decir "cualquierletra minúscula". Algunas implementaciones de UNIX generalizaron  esto  de
       forma  que  un  rango X-Y significara el conjunto de caracteres cuyos códigos estuvieran entre los de X y
       los de Y. Sin embargo, esto requiere que el usuario conozca la codificación de caracteres que  se  emplee
       en  el sistema local, y aún más, esto no es conveniente si la secuencia de clasificación para el alfabeto
       local difiere del ordenamiento de los códigos de caracteres. Por lo tanto, POSIX extendió grandemente  la
       notación de corchetes, tanto para patrones de comodines como para expresiones regulares. Antes vimos tres
       tipos  de  elementos  que  pueden  estar  en  una  expresión de corchetes; a saber, (I) la negación, (II)
       caracteres simples explícitos, y (III) rangos. POSIX  especifica  los  rangos  de  una  manera  más  útil
       internacionalmente y añade tres tipos más:

       (III)  Los  rangos X-Y comprenden todos los caracteres que caigan entre X e Y (incluidos) en la secuencia
       de clasificación en curso según se defina en la categoría LC_COLLATE para  la  localización  o  escenario
       actual.

       (IV) Clases de caracteres nombradas, como

       [:alnum:]  [:alpha:]  [:blank:]  [:cntrl:]
       [:digit:]  [:graph:]  [:lower:]  [:print:]
       [:punct:]  [:space:]  [:upper:]  [:xdigit:]

       de  modo  que  uno  pueda  decir  "[[:lower:]]"  en vez de "[a-z]", con el significado de cualquier letra
       minúscula, y esto funcione por ejemplo también en Dinamarca, donde hay tres letras en el alfabeto después
       de la 'z'. Estas clases de caracteres están definidas por la categoría LC_CTYPE en el escenario en curso.

       (V) Símbolos de colación, como "[.ch.]" o "[.a-acute.]", donde la cadena entre "[." y ".]" es un elemento
       de colación definido por el escenario en curso. Observe que esto puede ser un elemento multi-carácter.

       (VI) Expresiones de clase de equivalencia, como "[=a=]", donde la cadena entre "[=" y "=]"  es  cualquier
       elemento  de  colación  de  su  clase  de  equivalencia,  según se defina para el escenario en curso. Por
       ejemplo,   "[[=a=]]"   podría    ser    equivalente    a    "[aáàäâ]",    esto    es,    equivalente    a
       "[a[.a-acute.][.a-grave.][.a-umlaut.][.a-circumflex.]]".

VÉASE TAMBIÉN

       sh(1), fnmatch(3), glob(3), locale(7), regex(7)

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Gerardo  Aburruzaga  García
       <gerardo.aburruzaga@uca.es>, Miguel Pérez Ibars <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>

       Esta traducción es documentación libre;  lea  la  GNU General Public License Version 3  o  posterior  con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción  de esta página del manual, envíe un correo electrónico a
       debian-l10n-spanish@lists.debian.org.

Páginas de Manual de Linux 6.9.1                  15 Junio 2024                                          glob(7)