我在bash中寻找一种方法来获取给定文件的父级父级的完整路径。例如,user@host:~/grand-parent/parent $ {get-grand-parent} file
应该返回/home/user/grand-parent/
。
我已多次尝试使用dirname
,但显然它只是拆分传递的字符串并返回第二个最后一个路径。 dirname $(dirname parent/file)
就像.
一样返回dirname $(dirname $(dirname parent/file))
,所以只有在我传递完整路径时才会有效。
实现这一目标的最佳方式是什么?
答案 0 :(得分:1)
调用dirname一次以获取父paht。
$ realpath mediawiki/LocalSettings.php
/opt/mediawiki/LocalSettings.php
要获取提供文件夹或文件相对路径的完整路径,请使用以下
之一1 - realpath
$ readlink -m mediawiki/LocalSettings.php
/opt/mediawiki/LocalSettings.php
2 - readlink
echo "$(cd "$(dirname "mediawiki/LocalSettings.php")"; pwd)/$(basename "mediawiki/LocalSettings.php")"
对于内置解决方案,您必须具有创造性
call to "Mat" is ambiguous
答案 1 :(得分:0)
解决方案我基于@JoaoVitorino回答了。
$ pwd
/home/user/grand-parent/parent
$ dirname $(dirname $(realpath file))
/home/user/grand-parent