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
       ⟨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 ⟨⟩.