如何获取`/ var`及其子目录中的所有文件并忽略列出文件夹名称?

时间:2012-04-30 02:09:54

标签: ruby file

如何获取/var及其子目录中的所有文件,但同时忽略list out子目录文件夹名称?

我尝试了Dir["/var/*"],但没有列出子目录中的所有文件。

1 个答案:

答案 0 :(得分:3)

Dir["/var/**/*"]

此模式中显示的**匹配零个或多个嵌套目录的任何路径片段,但与文件不匹配。

让我们打破这一点:

如果你有/var/somefile.txt(你的系统可能不存在,因为/var很可能只有目录),这就是你的每个部分匹配的内容:

Part of pattern     Part of directory path
     /var                 /var
     **                   (nothing)
     *                    somefile.txt

对于文件/var/run/NetworkManager.pid

Part of pattern     Part of directory path
     /var                 /var
     **                   run
     *                    NetworkManager.pid

对于文件/var/spool/mail/news

Part of pattern     Part of directory path
     /var                 /var
     **                   spool/mail
     *                    news

我不确定Dir['/var/**']本身是做什么的。我认为,为了使它按照您期望的方式工作,您总是需要**之后的另一个路径组件。