Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Ruby では、Dir.glob("**/*.rb")(たとえば) シンボリック リンクされたディレクトリをトラバースしません。**シンボリックリンクをトラバースすることは可能ですか?
Dir.glob("**/*.rb")
**
この方法でファイルを見つける 2 つの gem を使用していますが、シンボリック リンクされたディレクトリ内のファイルを表示するにはそれらが必要です。
Jonathan の巧妙で狡猾なアプローチは素晴らしく、数個のアスタリスクをフリックするだけで、シンボリック リンクの大群を切り裂くことができます。ただし、直接の子の一致を返さないという不幸な副作用があります。改善されたバージョンは次のようになります。
Dir.glob("**{,/*/**}/*.rb")
(私のテストでは)1つのシンボリックリンクをたどり、直接の子を返します。
無限ループのリスクがあるため、通常は再帰検索を使用しません。
しかし、この議論は役立つかもしれません:
Dir.glob("**/*/**/b")シンボリックリンクを 1 回までたどります。
Dir.glob("**/*/**/b")