ruby - 关于 Ruby 中 Dir[] 和 File.join() 的混淆

标签 ruby file dir

我在 Ruby 中遇到了一个关于 Dir[]File.join() 的简单程序,

blobs_dir = '/path/to/dir'
Dir[File.join(blobs_dir, "**", "*")].each do |file|
       FileUtils.rm_rf(file) if File.symlink?(file)

我有两个困惑:

首先,File.join(@blobs_dir, "**", "*")中的第二个和第三个参数是什么意思?

其次,Dir[]在Ruby中有什么用?我只知道它等价于Dir.glob(),但是,我对Dir.glob()确实不是很清楚。

最佳答案

File.join(blobs_dir, "**", "*")

这只是为 glob 构建路径模式。结果是/path/to/dir/**/*

***的含义:

*:匹配任意文件
**:递归匹配目录

因此您的代码用于删除目录 /path/to/dir 中的每个符号链接(symbolic link)。

关于ruby - 关于 Ruby 中 Dir[] 和 File.join() 的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21928507/

相关文章:

java - 使用 Bootstrap 在部署时创建目录

ruby - 只加载 Ruby 中正在使用的类?

java - 从文本文件中读取一行而不是整个文件(使用 bufferedreader)

jquery - 如何以编程方式更改 WordPress 上传文件夹?

python - 如何在 Python 3.x 中识别和存储格式化文本文件中的变量和数据?

shell - 如何知道 mac 命令行上 open 命令的 -a 标志可使用哪些应用程序

php - php 如何统计文件夹中的文件数

ruby-on-rails - 如何匹配和删除 ruby​​ 文件中的整行?

ruby - 从数组中的对象中删除实例变量

ruby - Rack 应用程序 : can't activate rack, 已激活