Like many others I\'ve seen in the Googleverse, I fell victim to the File.exists? trap, which of course checks your local file system, not the server y
File.exists?
In capistrano 3, you can do:
on roles(:all) do if test("[ -f /path/to/my/file ]") # the file exists else # the file does not exist end end
This is nice because it returns the result of the remote test back to your local ruby program and you can work in simpler shell commands.