从 bash 中的相对路径获取文件父文件的父文件的完整路径
Get full path of a parent of a parent of a file from relative path in bash
我正在 bash 中寻找一种方法来获取给定文件的父文件的父文件的完整路径。例如 user@host:~/grand-parent/parent $ {get-grand-parent} file
应该 return /home/user/grand-parent/
.
我曾多次尝试使用 dirname
,但显然它只是拆分了传递的字符串和 return 倒数第二个路径。 dirname $(dirname parent/file)
returns .
就像 dirname $(dirname $(dirname parent/file))
,所以它只有在我传递完整路径时才有效。
实现此目标的最佳方法是什么?
调用 dirname 一次以获取父 paht。
$ pwd
/opt
$ dirname mediawiki/maintenance
mediawiki
$ dirname mediawiki/maintenance/mssql/
mediawiki/maintenance
要获取给出文件夹或文件相对路径的完整路径,请使用以下方法之一
1 - 真实路径
$ realpath mediawiki/LocalSettings.php
/opt/mediawiki/LocalSettings.php
2 - 阅读链接
$ readlink -m mediawiki/LocalSettings.php
/opt/mediawiki/LocalSettings.php
对于内置解决方案,您必须有创意
echo "$(cd "$(dirname "mediawiki/LocalSettings.php")"; pwd)/$(basename "mediawiki/LocalSettings.php")"
我根据@JoaoVitorino 的回答提出的解决方案。
$ pwd
/home/user/grand-parent/parent
$ dirname $(dirname $(realpath file))
/home/user/grand-parent
我正在 bash 中寻找一种方法来获取给定文件的父文件的父文件的完整路径。例如 user@host:~/grand-parent/parent $ {get-grand-parent} file
应该 return /home/user/grand-parent/
.
我曾多次尝试使用 dirname
,但显然它只是拆分了传递的字符串和 return 倒数第二个路径。 dirname $(dirname parent/file)
returns .
就像 dirname $(dirname $(dirname parent/file))
,所以它只有在我传递完整路径时才有效。
实现此目标的最佳方法是什么?
调用 dirname 一次以获取父 paht。
$ pwd
/opt
$ dirname mediawiki/maintenance
mediawiki
$ dirname mediawiki/maintenance/mssql/
mediawiki/maintenance
要获取给出文件夹或文件相对路径的完整路径,请使用以下方法之一
1 - 真实路径
$ realpath mediawiki/LocalSettings.php
/opt/mediawiki/LocalSettings.php
2 - 阅读链接
$ readlink -m mediawiki/LocalSettings.php
/opt/mediawiki/LocalSettings.php
对于内置解决方案,您必须有创意
echo "$(cd "$(dirname "mediawiki/LocalSettings.php")"; pwd)/$(basename "mediawiki/LocalSettings.php")"
我根据@JoaoVitorino 的回答提出的解决方案。
$ pwd
/home/user/grand-parent/parent
$ dirname $(dirname $(realpath file))
/home/user/grand-parent