【问题标题】:Can I traverse symlinked directories in Ruby with a "**" glob?我可以用“**”全局遍历 Ruby 中的符号链接目录吗?
【发布时间】:2010-04-28 02:48:18
【问题描述】:

在 Ruby 中,Dir.glob("**/*.rb")(例如)不会遍历符号链接目录。是否可以让** 遍历符号链接?

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

【问题讨论】:

    标签: ruby symlink


    【解决方案1】:

    乔纳森聪明而狡猾的方法非常棒,只需轻轻一按星号,就能够削减成群的符号链接,muahaha。但是,它具有不返回直接子匹配项的不幸副作用。改进的版本可能是:

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

    哪个(在我的测试中)会遵循一个符号链接并返回直接子级。

    【讨论】:

    【解决方案2】:

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

    但是,this discussion may help:

    Dir.glob("**/*/**/b") 将跟随一个符号链接最多一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 2011-11-05
      相关资源
      最近更新 更多