Não tenho certeza se a variável de ambiente $PWD
foi definida no shell bourne, mas a o comando pwd
existe desde o antigo minix e é parte do POSIX , portanto :
abs_path="$(cd "$rel_path" && pwd -P)"
Suponha que eu esteja executando o bash em um sistema Unix-ish - não necessariamente Linux e não necessariamente muito novo; e pode não ter todo o software que eu gostaria.
Agora, tenho um caminho relativo para o qual desejo obter o caminho absoluto. Qual é a maneira mais robusta e portátil de fazer isso?
As respostas aqui parecem na maioria das vezes assumir os principais utilitários GNU estão instalados, o que eu prefiro não fazer.
Pontos de bônus se sua resposta funcionar em qualquer variante do Bourne Shell.
Não tenho certeza se a variável de ambiente $PWD
foi definida no shell bourne, mas a o comando pwd
existe desde o antigo minix e é parte do POSIX , portanto :
abs_path="$(cd "$rel_path" && pwd -P)"
O que eu faço agora é
absolute_path="$(cd "$relative_path"; echo "$PWD")"
Gostaria de saber se a Bourne Shell tinha $PWD
.
Você pode usar o módulo Cwd
core do Perl. Este módulo fornece funções para determinar o nome do caminho do diretório de trabalho atual.
perl -MCwd -le 'print Cwd::realpath("foo")'
O Perl geralmente já está instalado no Linux e no Unix. Este módulo faz parte do núcleo Perl-5 desde 1994.
Tags shell path bourne-shell portability