我使用了realpath
命令,但是它总是将原始输入添加到路径的末尾:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
我使用了realpath
命令,但是它总是将原始输入添加到路径的末尾:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Answers:
您给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
那是因为您要给它提供一个不存在的路径,所以它只是打印出当前目录以及您提供的任何内容,并假设这是该路径。请注意,手册页指定:
打印解析的绝对文件名;除最后一个组件外的所有组件都必须存在
因此,它允许使用不存在的目标执行。为了说明,请考虑以下示例:
$ pwd
/home
$ ls
lost+found terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir
或者,复制您所做的:
$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
realpath .