我对正在发生的事情感到困惑。
dir = "~/Downloads"
#=> "~/Downloads"
`ls #{dir}`
#=> "110912-font-awesome.zip\n"
Dir.exist? dir
#=> false
为什么会这样?
答案 0 :(得分:5)
因为当你使用`ls`时你运行一个shell命令而~
与shell有关(我认为它是$HOME
变量的快捷方式)。但Dir.exist?
是纯粹的红宝石,它对shell一无所知,因此目录不存在。
无论如何,这是有效的
Dir.exist?(ENV['HOME'])
答案 1 :(得分:4)
File.expand_path
可以展开~
:
dir = File.expand_path('~/Downloads')
#=> /home/stefan/Downloads
Dir.exist?(dir)
#=> true