如何在命令行中从相对路径获取绝对路径

how to get absolute path from relative path in command line

我运行这个命令"httpd -d ./inst2 -k start"启动Apache Server,我可以通过"ps -ef | grep httpd"看到这个命令行。我的问题是如果我不知道绝对路径,有没有办法得到“./inst2”的绝对路径?

谢谢

您可以通过检查伪符号 link /proc/PID/cwd 来尝试 GUESS 绝对路径是什么,其中 PID 可以从ps 输出:ls -l /proc/PID/cwd。但请注意,它只是当前工作目录,您的路径可能会根据任何其他目录进行解析,因此这只是一个猜测

另一种选择,如果你的程序使用这个相对路径打开一些文件,而实际上你需要确定这些文件的完整路径,你可以使用/proc/PID/fd伪目录枚举某些进程当前打开的文件: ls -l /proc/PID/fd。但是,当然,文件可以在执行 ls 时已经关闭。而且我不知道如果打开的文件被移动到其他地方会显示什么。

要获取 file/directory 的绝对路径,甚至可以在 linux.

上执行以下命令
  1. 找到 $HOME -type f -name "inst2" (for file)
  2. 找到 $HOME -type d -name "inst2" (对于目录)

这可以为您提供任何文件或目录的绝对路径。 如果该文件不在您的家中,请在命令前使用 sudo 并将 $HOME 替换为 /.