当前目录、父目录和根目录的路径

Path of the current, parents and root directory

我需要在 UNIX 中打印当前目录、父目录和根目录的路径。我可以使用命令或 shell 脚本。我设法为当前目录和父目录做到了这一点,但我不知道如何为根目录打印它。

这是我所做的:

gnu sed

echo $(pwd) | sed -r -e 'p; :a; s#(.*)/.*##; H; ta; x' | sed '/^$/d'  

这将打印当前 -> 根目录中的所有目录

它使用贪心搜索'/'只保留左边的部分,在hold中追加space,ta是替换的条件分支,所以如果有它分支到:a,最后x是交换持有 space 到模式 space.
最后一个 sed 命令用于清除空行

我认为使用 awk 更容易做到这一点:

echo $(pwd) | awk 'BEGIN {FS=OFS="/"} {l=NF; while (i++<l-1) {print; NF--}}'

说明

这将打印当前 --> 根目录下的所有目录。它通过打印行,然后递减 NF,字段数来实现。请注意,我已将输入和输出字段分隔符都设置为 /.

与@josifoski 的想法相同

pwd | sed ':a;\#/\(.*\)/[^/]*# {p;s##/#;ba}'

打印并循环直到只有第一个文件夹名称,每次循环删除路径的最后一个文件夹