A saída do caminho real inclui a entrada

9

Eu uso o realpathcomando, mas ele sempre adiciona a entrada original no final do caminho:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Josef Klimuk
fonte
Você está solicitando um diretório dentro do seu diretório de trabalho atual. Tente isso:realpath .
penguin359

Respostas:

17

Você forneceu realpathum caminho relativo para um arquivo no diretório atual.

O arquivo (que pode ser um diretório) pode ou não existir. realpathnão se importa por padrão. Ele relata o caminho, independentemente de seu último elemento existir.

Se você deseja que ele relate apenas os caminhos existentes, use o -esinalizador:

zanna@toaster:~/playground$ realpath playground
/home/zanna/playground/playground
zanna@toaster:~/playground$ realpath ~/playground
/home/zanna/playground
zanna@toaster:~/playground$ realpath -e playground
realpath: playground: No such file or directory
Zanna
fonte
12

Isso porque você está dando a ele um caminho que não existe, então ele simplesmente imprime o diretório atual e o que você deu, assumindo que esse seria o caminho. Observe que a página do manual especifica que:

Imprima o nome absoluto do arquivo resolvido; tudo, exceto o último componente, deve existir

Por isso, permite a execução com um destino inexistente. Para ilustrar, considere estes exemplos:

$ pwd
/home
$ ls
lost+found  terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir

Ou, para duplicar o que você fez:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
Terdon
fonte
5

Não, apenas informa que o caminho para o arquivo (provavelmente inexistente) yosefkllocalizado no diretório atual ( /homes/yosefkl) é /homes/yosefkl/yosefkl. Tentar

realpath "$PWD"
choroba
fonte