以shell的文件夹path的最后部分

如果你input密码,你会得到如下的东西:

/home/username/Desctop/myfolder/

如何把最后一部分? 我的文件myfolderpath。

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

谢谢

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

 basename "$PWD" 

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

 echo ${PWD##*/} 

应该在没有昂贵的叉子的情况下彻底地完成这个技巧(snag:根目录是空字符串)。

在Linux中,有一对命令, dirnamebasenamedirname提取路径的最后部分,而basename只提取路径的最后部分。

在这种情况下,使用basename会做你想要的:

basename $(pwd)

如果最后一部分确实是一个目录组件(不是文件),那么可以使用basename

 $ basename /home/username/Desctop/myfolder/ myfolder 

要提取路径的最后部分,请尝试使用basename

 basename $(pwd); 
 function basename { shopt -s extglob __=${1%%+(/)} [[ -z $__ ]] && __=/ || __=${__##*/} } basename "$PWD" echo "$__"