如果你输入 pwd 你会得到类似的东西:
/home/username/Desctop/myfolder/
最后一部分怎么接?myfolder
路径。
这一定很简单,但我在 shell 中找不到简单的解决方案。我知道如何在 java 中解决这个问题,但在 shell 中却不知道。
谢谢
你是对的 - 这是一个快速命令:
basename "$PWD"
使用basename $(pwd)
的是两个无用且昂贵的叉子。
echo "${PWD##*/}"
应该在没有昂贵的分叉的情况下完全在 shell 中完成这个技巧(障碍:对于根目录,这是空字符串)。
在 Linux 中,有一对命令dirname
和basename
. dirname
提取路径的最后部分以外的所有部分,并且basename
只提取路径的最后部分。
在这种情况下, usingbasename
将做你想做的事:
basename $(pwd)
您可以使用basename
它,前提是最后一部分确实是目录组件(不是文件):
$ basename /home/username/Desctop/myfolder/
myfolder
要提取路径的最后一部分,请尝试使用basename
...
basename $(pwd);
function basename {
shopt -s extglob
__=${1%%+(/)}
[[ -z $__ ]] && __=/ || __=${__##*/}
}
basename "$PWD"
echo "$__"