当前路径,父路径和根目录

时间:2015-06-07 22:17:45

标签: shell unix sed path pwd

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

这就是我所做的:

  • 当前:pwd
  • parent:echo $(pwd) | sed -e s/\\/[^\\/]*$//

3 个答案:

答案 0 :(得分:3)

gnu sed

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

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

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

答案 1 :(得分:1)

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

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

<强>解释

这将打印当前的所有目录 - &gt;根。它通过打印行,然后递减NF字段数来完成此操作。请注意,我已将输入和输出字段分隔符都设置为/

答案 2 :(得分:1)

与@josifoski相同的想法

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

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