Obtendo o nome completo do caminho de um determinado diretório

5

Suponha que eu esteja em /path/to/dir . Dentro desse diretório há outro diretório chamado subdir .

Existe um comando que eu possa emitir que produza o caminho completo para subdir , não importa como ele seja identificado? Por exemplo:

$ cmd subdir
/path/to/dir/subdir

$ cmd /path/to/dir/subdir
/path/to/dir/subdir
    
por George 29.01.2016 / 15:48

2 respostas

9

coreutils ' realpath faz o truque:

realpath subdir

e funciona no entanto o diretório (ou arquivo) é especificado:

realpath /blah/blah2/subdir
realpath ../blah2/subdir
    
por 29.01.2016 / 15:49
1
function somepath () {
  [ -z "$1" ] && { pwd; return; }
  (cd -P -- "$1" && pwd)
}

Simplesmente cria um subshell (para que o cd não afete seu shell atual) e imprime o cwd. (Editado em um teste para o caso "no parameter")

    
por 30.01.2016 / 00:22