Provided by: manpages-es_4.13-4_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
       Una cadena de caracteres es un patrón con comodines si contiene uno al menos de los caracteres '?', '*' o
       '['.  La  generación  de nombres de caminos (en inglés, `globbing') es la operación que expande un patrón
       con comodines formando una lista de nombres de caminos de ficheros  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 entre corchetes `[...]' donde el primer carácter tras el corchete de apertura `[' no es  un
       signo  de  cierre  de  admiración  `!',  concuerda  con  un  carácter  simple; a saber, cualquiera de los
       caracteres encerrados entre los corchetes. La cadena encerrada entre los corchetes no puede estar  vacía;
       por  ello,  el  corchete  de  cierre  `]' puede estar entre los corchetes, siempre que sea como 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 primer cierre de admiración `!' 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 inclinada
       invertida `\', o, en caso de formar parte de una orden del shell,  encerrándolos  entre  comillas.  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-fichero `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  zeta.  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á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)

COLOFÓN

       Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
       proyecto,   información   sobre   cómo   informar   errores  y  la  última  versión  de  esta  página  en
       https://www.kernel.org/doc/man-pages/.

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.

Linux                                            13 Agosto 2020                                          GLOB(7)