Remove current directory from variable containing path
我有一个包含当前目录的变量,其中包括几个父目录。例如:
1 2 3 4 | $ pwd /Users/simont/repositories $ echo $current ~/repositories |
我可以从这个问题中去掉除当前目录之外的所有内容:
1 | onlycurrent=${$(current)##*/} |
我想做相反的事情:从这个变量中删除当前目录(这样它只包含
使用
1 2 3 4 5 | $ current="~/repositories" $ echo $current ~/repositories $ dirname $current ~ |
诚然,这并不能将
如果您只想使用
1 2 | $ echo ${current%/*} ~ |
在最后一个
这并不能完全解决您的问题,但您可能需要查看dirname(和basename)。
1 2 3 4 5 6 7 8 | /home/or..product/oracle10 >pwd /home/oracle/product/oracle10 /home/or..product/oracle10 >dirname `pwd` /home/oracle/product /home/or..product/oracle10 >basename `pwd` oracle10 |
顺便说一句:dirname并不关心返回的字符串是否真的是directoy,它适用于任意字符串。
1 2 | /home/or..product/oracle10 >dirname"/foo/bar/baz" /foo/bar |