Могу ли я пройти по каталогам с символическими ссылками в Ruby с помощью символа «**»?

В Ruby Dir.glob("**/*.rb")(например) не пересекает символьные каталоги. Можно ли получить **символические ссылки?

Я использую два драгоценных камня, которые находят файлы таким образом, но мне нужны они, чтобы видеть файлы в каталоге с символическими ссылками.

10.12.2008 21:55:44
2 ОТВЕТА
РЕШЕНИЕ

Умный и хитрый подход Джонатана великолепен, он способен пробиться сквозь орды символических ссылок с помощью всего лишь нескольких звездочек, муахаха. Тем не менее, он имеет неприятный побочный эффект, что не возвращает непосредственные дочерние совпадения. Улучшенная версия может быть:

Dir.glob("**{,/*/**}/*.rb")

Который (в моих тестах) будет следовать и по одной символической ссылке и возвращать непосредственных детей.

36
27.04.2010 18:48:18
Определенно работает, поскольку в исходном коде есть ссылка на популярный проект с открытым исходным кодом parralel_spec github.com/grosser/parallel_tests/blob/…
Dorian 1.02.2017 00:15:08

Обычно не с рекурсивным поиском из-за риска бесконечных циклов.

Но эта дискуссия может помочь :

Dir.glob("**/*/**/b") будет следовать символической ссылке до одного раза.

12
10.12.2008 22:15:33