Ruby - 为什么Dir.foreach将`.`和`..`作为前两个参数传递?

时间:2014-11-15 23:12:57

标签: ruby foreach

在空目录中,以下代码

Dir.foreach("./") do |file|
  puts file
end

返回

.
..

在我的理解中.指的是工作目录,..指的是父目录;为什么foreach似乎将它们视为工作目录中的文件?

1 个答案:

答案 0 :(得分:3)

因为是工作目录中的文件。 ...目录并不神奇;它们与任何子目录的显示方式与目录中的条目相同。 UNIX类型文件系统上的每个目录都具有名为...的实际目录条目。因此,如果您在处理目录时不想包含它们,则需要自行排除它们。