Realpath 输出包括输入

Jos*_*muk 9 bash

我使用该realpath命令,但它总是在路径末尾添加原始输入:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Run Code Online (Sandbox Code Playgroud)

Zan*_*nna 17

您给出realpath了当前目录中文件的相对路径。

该文件(可能是一个目录)可能存在也可能不存在。realpath默认不关心。无论最后一个元素是否存在,它都会报告路径。

如果您希望它仅报告存在的路径,请使用以下-e标志:

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
Run Code Online (Sandbox Code Playgroud)


ter*_*don 12

那是因为你给它一个不存在的路径,所以它只是打印出当前目录和你给它的任何东西,假设这就是路径。请注意,手册页指定:

打印解析出的绝对文件名;除了最后一个组件之外的所有组件都必须存在

因此它允许使用不存在的目标执行。为了说明,请考虑以下示例:

$ pwd
/home
$ ls
lost+found  terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
Run Code Online (Sandbox Code Playgroud)

或者,复制你所做的:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
Run Code Online (Sandbox Code Playgroud)


cho*_*oba 5

不,它只告诉您yosefkl位于当前目录 ( /homes/yosefkl) 中的(可能不存在的)文件的路径是/homes/yosefkl/yosefkl. 尝试

realpath "$PWD"
Run Code Online (Sandbox Code Playgroud)