如果你输入pwd,你会得到类似的东西:
/home/username/Desctop/myfolder/
如何采取最后一部分? myfolder
路径。
这一定很简单,但我找不到简单的shell解决方案。我知道如何在java中处理这个问题但不在shell中。
感谢
答案 0 :(得分:18)
你是对的 - 这是一个快速命令:
basename "$PWD"
答案 1 :(得分:9)
使用basename $(pwd)
两个无用且昂贵的分支。
echo ${PWD##*/}
应该在shell中完全完成这个技巧,而不需要昂贵的分支(snag:对于根目录,这是空字符串)。
答案 2 :(得分:2)
在Linux中,有一对命令dirname
和basename
。 dirname
提取除路径的最后部分之外的所有部分,basename
仅提取路径的最后部分。
在这种情况下,使用basename
将执行您想要的操作:
basename $(pwd)
答案 3 :(得分:0)
如果最后一部分确实是目录组件(不是文件),您可以使用basename
:
$ basename /home/username/Desctop/myfolder/
myfolder
答案 4 :(得分:0)
要提取路径的最后部分,请尝试使用basename
...
basename $(pwd);
答案 5 :(得分:0)
function basename {
shopt -s extglob
__=${1%%+(/)}
[[ -z $__ ]] && __=/ || __=${__##*/}
}
basename "$PWD"
echo "$__"