How do I extract the last directory of a pwd output? I don't want to use any knowledge of how many levels there are in the directory structure. If I wanted to use that, I could do something like:
> pwd
/home/kiki/dev/my_project
> pwd | cut -d'开发者_如何学编程/' -f5
my_project
But I want to use a command that works regardless of where I am in the directory structure. I assume there is a simple command to do this using awk or sed.
Are you looking for basename or dirname?
Something like
basename "`pwd`"
should be what you want to know.
If you insist on using sed
, you could also use
pwd | sed 's#.*/##'
If you want to do it completely within a bash script without running any external binaries, ${PWD##*/}
should work.
Using awk:
pwd | awk -F/ '{print $NF}'
Should work for you:
pwd | rev | cut -f1 -d'/' - | rev
Reference: https://stackoverflow.com/a/31728689/663058
精彩评论