我需要在UNIX中打印当前,父目录和根目录的路径。我可以使用命令或shell脚本。我设法为当前和父目录这样做,但我不知道如何打印它为根目录。
这就是我所做的:
pwd
echo $(pwd) | sed -e s/\\/[^\\/]*$//
答案 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}'
打印并循环直到第一个文件夹名称,删除路径的最后一个文件夹的每个循环