我在 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/