La salida de Realpath incluye la entrada

9

Uso el realpathcomando, pero siempre agrega la entrada original al final de la ruta:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Josef Klimuk
fuente
Estás pidiendo un directorio dentro de tu directorio de trabajo actual. Pruebe esto en su lugar:realpath .
penguin359

Respuestas:

17

Le dio realpathuna ruta relativa a un archivo en el directorio actual.

El archivo (que puede ser un directorio) puede o no existir. realpathno le importa por defecto. Informa la ruta independientemente de si existe su último elemento.

Si desea que solo informe rutas que existen, use la -ebandera:

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
fuente
12

Esto se debe a que le está dando una ruta que no existe, por lo que simplemente imprime el directorio actual y lo que sea que le haya dado, suponiendo que esa sea la ruta. Tenga en cuenta que la página del manual especifica que:

Imprima el nombre de archivo absoluto resuelto; todos menos el último componente debe existir

Por lo tanto, permite la ejecución con un objetivo inexistente. Para ilustrar, considere estos ejemplos:

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

O, para duplicar lo que hiciste:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
terdon
fuente
5

No, solo le dice que la ruta al archivo (probablemente inexistente) yosefklubicado en el directorio actual ( /homes/yosefkl) es /homes/yosefkl/yosefkl. Tratar

realpath "$PWD"
choroba
fuente