代码之家  ›  专栏  ›  技术社区  ›  Peeja

我可以用一个“**”glob遍历Ruby中的符号链接目录吗?

  •  21
  • Peeja  · 技术社区  · 17 年前

    红宝石, Dir.glob("**/*.rb") (例如)不遍历符号链接目录。有可能得到 ** 穿越符号链接?

    我使用的是两个gem,它们以这种方式查找文件,但我需要它们查看符号链接目录中的文件。

    2 回复  |  直到 16 年前
        1
  •  36
  •   Tim Harper    16 年前

    乔纳森的聪明和狡猾的方法是伟大的,能够通过大量的符号链接削减,但只是几个星号,木哈哈轻弹。然而,它有一个不幸的副作用,即没有立即返回儿童匹配。改进的版本可能是:

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

    这将(在我的测试中)同时遵循一个符号链接并返回直接的孩子。

        2
  •  12
  •   Jonathan Lonowski    17 年前

    通常不使用递归搜索,因为存在无限循环的风险。

    但是, this discussion may help :

    Dir.glob("**/*/**/b") 将跟踪符号链接一次。

    推荐文章