如何获取符号链接的完整路径而不将其解析为原始文件的路径?
例如,如果我有一个这样设置的目录:
~$ tree analysis_results/
analysis_results/
`-- Sample1
`-- bar.txt -> /Users/me/foo.txt
Run Code Online (Sandbox Code Playgroud)
如果我尝试获取 的完整路径bar.txt,我最终会得到以下路径foo.txt:
~$ readlink -f analysis_results/Sample1/bar.txt
/Users/me/foo.txt
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是:
/Users/me/analysis_results/Sample1/bar.txt
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法来实现这一点?看起来我没有realpath可用的,不确定该程序是否执行此操作,或者是否有其他一些类似的命令。
当我pwd是这样的时候事情变得更加复杂:
/Users/me/analysis/peaks/workflow/code
Run Code Online (Sandbox Code Playgroud)
但我想阅读符号链接的完整路径,如:
/Users/me/analysis/alignment/results/Sample1/bar.txt
Run Code Online (Sandbox Code Playgroud)
使用 GNU realpath:
$ touch foo
$ ln -s foo bar
$ realpath --no-symlinks bar
/path/to/bar
Run Code Online (Sandbox Code Playgroud)
echo "$(readlink -f analysis_results/Sample1)/bar.txt"
Run Code Online (Sandbox Code Playgroud)
仅解析目录,然后将文件名附加到结果中。