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

标签 ruby file

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

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

最佳答案

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

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

让我们分解一下:

当您有 /var/somefile.txt (您的系统上可能不存在,因为 /var 中很可能只有目录)时,这里是glob 的每个部分将匹配什么:

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/**'] 本身的作用。我认为要使其按照您期望的方式工作,您总是需要在 ** 之后另一个路径组件。

关于ruby - 如何获取 `/var` 及其子目录中的所有文件并忽略列出的文件夹名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10377758/

相关文章:

ruby - 使用 Ruby 创建 Git 提交并推送到 GitHub

ruby-on-rails - Ruby on Rails 中的竞争条件

Python 等价于 Ruby Array.each 方法

c# - 检查两个文件名是否引用同一个文件

file - 大文件的 awk 和 sum 行

ruby-on-rails - ruby on rails syntax-变量后的: come before v.什么时候出现?

ruby - docker-compose : connection refused between containers, 但可以从主机访问服务

python - 在 Flask 中显示一个 .txt 文件

javascript - 如何取消选择html格式的文件?

c - 检索 csv 文件的列 ID