2012-01-23 49 views
6

Funkcja glob ma GLOB_MARK flagę, która jest określona dołączyć ukośnik do wyników, które są katalogi:Czy glob, z GLOB_MARK, dołączyć/do symlink do katalogu wyników?

GLOB_MARK

Każda ścieżka, która jest katalogiem, który pasuje do wzorca powinny mieć <slash> dołączane.

(Źródło: http://pubs.opengroup.org/onlinepubs/9699919799/functions/glob.html)

Jednakże, o ile mi wiadomo, żadne dalsze szczegóły podano, w jaki sposób ta funkcja ma działać. W szczególności, jeśli wynik nie jest samym katalogiem, ale jest dowiązaniem symbolicznym do katalogu, czy należy dodać slash? Implementacja glibc to robi.

Wiem, że jest to trudne pytanie, z uwagi na zwięzłość standardu dla glob, więc dobre odpowiedzi będą tymi, które cytują historyczną praktykę, historyczne standardy lub dokumentację inną niż POSIX, które mogą bardziej szczegółowo określać zachowanie glob, itp. Odpowiednie są również odpowiedzi, które przywołują powody, dla których jedno lub drugie zachowanie jest bardziej użyteczne.

Odpowiedz

1

Z nieoficjalnych oddziału badawczego mojego własnego zespołu: ;-)

glob (3) po raz pierwszy pojawił się w bsd4.3-Reno w 1989 roku i jest dołączany '/' po dowiązania do katalogów z GLOB_MARK

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

(glob2 wykorzystuje stat nie lstat na pathbuf)

solaris ma glob z komentarzem autorskim z 1985

że jeden dodaje "/" do dowiązania symbolicznego ścieżki

Powiązane problemy