2012-01-23 3 views
6

La función glob tiene una bandera GLOB_MARK que se especifica añadir una barra inclinada a resultados que son directorios:¿Debería glob, con GLOB_MARK, anexar/a los resultados de enlace simbólico al directorio?

GLOB_MARK

Cada nombre de ruta que es un directorio que coincide con el patrón tendrá un <slash> adjuntas.

(Fuente: http://pubs.opengroup.org/onlinepubs/9699919799/functions/glob.html)

Sin embargo, por lo que yo puedo decir, no se proporcionan más detalles sobre cómo se supone que esta característica funcione. En particular, si un resultado no es un directorio en sí mismo, sino que es un enlace simbólico a un directorio, ¿debería agregarse una barra inclinada? La implementación de glibc hace esto.

Sé que esto es una pregunta difícil de responder, dada la brevedad de la norma para glob, tan buenas respuestas serán los que citan a la práctica histórica, en términos históricos o documentación que no sea POSIX que podrían especificar con mayor detalle el comportamiento de glob, etc. Las respuestas que muestran razones por las cuales una conducta u otra es más útil también serían interesantes.

Respuesta

1

De no oficial rama de investigación de mi propio equipo: ;-)

glob (3) apareció por primera vez en BSD4.3-reno en 1989 y se añade '/' después de enlaces simbólicos de directorio con GLOB_MARK

http://minnie.tuhs.org/cgi-bin/utree.pl?file=4.3BSD-Reno/src/lib/libc/gen/glob.c

(glob2 utiliza stat, no lstat en el pathbuf)

Solaris tiene un pegote con comentario de derechos de autor de 1985

que se agrega '/' a las rutas de enlace simbólico también

Cuestiones relacionadas