Provided by: manpages-es_4.18.1-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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.