Realpath输出包括输入


9

我使用了realpath命令,但是它总是将原始输入添加到路径的末尾:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl

您要在当前工作目录中查找目录。尝试以下方法:realpath .
penguin359

Answers:


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

12

那是因为您要给它提供一个不存在的路径,所以它只是打印出当前目录以及您提供的任何内容,并假设这是该路径。请注意,手册页指定:

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

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

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

或者,复制您所做的:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon

5

不,它仅告诉您yosefkl当前目录(/homes/yosefkl)中(可能不存在)文件的路径为/homes/yosefkl/yosefkl。尝试

realpath "$PWD"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.