获取shell中文件夹路径的最后一部分

时间:2012-05-18 14:06:03

标签: linux bash shell

如果你输入pwd,你会得到类似的东西:

/home/username/Desctop/myfolder/

如何采取最后一部分? myfolder路径。

这一定很简单,但我找不到简单的shell解决方案。我知道如何在java中处理这个问题但不在shell中。

感谢

6 个答案:

答案 0 :(得分:18)

你是对的 - 这是一个快速命令:

basename "$PWD"

答案 1 :(得分:9)

使用basename $(pwd) 两个无用且昂贵的分支

echo ${PWD##*/}

应该在shell中完全完成这个技巧,而不需要昂贵的分支(snag:对于根目录,这是空字符串)。

答案 2 :(得分:2)

在Linux中,有一对命令dirnamebasenamedirname提取除路径的最后部分之外的所有部分,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 "$__"