У меня есть иерархия файлов, а некоторые из подкаталогов - относительные символические ссылки. Я использую Ruby's Find.find
, чтобы просканировать эти файлы и найти определенные файлы. Однако он не ищет в какой-либо директории, которая является символической ссылкой (она следует за файлами, которые являются символическими ссылками).Как заставить Ruby Find.find следовать символическим ссылкам?
Если вы ищете source code, то проблема заключается в том, что он использует File.lstat(file).directory?
, чтобы проверить, что-то является каталогом. Это возвращает false
для символических ссылок, но File.stat.directory?
возвращает true
.
Как я могу сделать Find.find
следовать символическим ссылкам, кроме обезьяны, исправляя его, чтобы использовать File.stat
вместо File.lstat
?
Как сделать 'Dir' найти файлы рекурсивно? Я не вижу метода в классе Dir - я что-то пропустил? – arnab
В то время как у «alib», похоже, есть похожий код, я никогда не слышал об этом - это не на github/gemcutter, а само имя (это действительно «lib») не внушает большого доверия. Вы использовали его в производственном коде? Как прошел опыт? – arnab
Dir ["**/*"], похоже, работает только для одного уровня иерархии - у меня было несколько уровней, причем некоторые из них были символическими. Я закончил использование Pathname # children (http://ruby-doc.org/core/classes/Pathname.html#M001721) – arnab