Como obter o caminho absoluto do diretório de trabalho atual do IRB
-
20-09-2019 - |
Pergunta
Estou executando o Ruby no Windows, embora não saiba se isso deve fazer a diferença. Tudo o que quero fazer é obter o caminho absoluto do atual diretório de trabalho. Isso é possível do IRB? Aparentemente de um script, é possível usar File.expand_path(__FILE__)
Mas no IRB, tentei o seguinte e recebi um erro de "permissão negada":
File.new(Dir.new(".").path).expand
Solução
Dir.pwd
parece fazer o truque.
Outras dicas
File.expand_path File.dirname(__FILE__)
retornará o diretório em relação ao arquivo que este comando é chamado.
Mas Dir.pwd
Retorna o diretório de trabalho (resultados idênticos à execução pwd
no seu terminal)
Quanto ao caminho em relação ao script de execução atual, já que Ruby 2.0 você também pode usar
__dir__
Portanto, isso é basicamente o mesmo que
File.dirname(__FILE__)
Isso fornecerá o diretório de trabalho do arquivo atual.
File.dirname(__FILE__)
Exemplo:
current_file: "/users/nemrow/sitm/folder1/folder2/amazon.rb"
Resultado: "/Usuários/Nemrow/sitm/pasta1/pasta2"
Se você deseja obter o caminho completo do diretório do arquivo RB atual:
File.expand_path('../', __FILE__)
Com isso, você pode obter um caminho absoluto de qualquer arquivo localizado em qualquer diretório.
File.join(Dir.pwd,'some-dir','some-file-name')
Isso retornará
=> "/User/abc/xyz/some-dir/some-file-name"