Ruby

[ruby] File 존재 여부 확인할 때 홈 디렉토리 주의

'김용환' 2016. 8. 18. 16:18



Ruby에서  ~를 사용하여 File의 존재 여부를 확인하고 싶을 때가 있다.


아래와 같이 File.file api를 사용해 파일 존재 여부를 확인하는 코드를 짰지만, 동작되지 않았다.


if
File.file?('~/job_name')
phase = `cat ~/job_name`.strip
else
phase = "develop"
end



아래와 같은 코드는 동작된다. 하지만,  절대 path와 상대 path 둘 다 사용하는 형태라서 어색하다.


if
File.file?('/Users/samuel.kim/job_name')
phase = `cat ~/job_name`.strip
else
phase = "develop"
end




home 디렉토리를 의미하는 ~와 함께 사용할 떄는 File.expand_path를 써야 의도된 대로 동작한다. 


if (File.exist? File.expand_path "~/job_name")
phase = `cat ~/job_name`.strip
else
phase = "develop"
end