How to get the last part of dirname in Bash

eggplantelf picture eggplantelf · Apr 18, 2014 · Viewed 99.2k times · Source

Suppose I have a file /from/here/to/there.txt, and want to get only the last part of its dirname to instead of /from/here/to, what should I do?

Answer

David W. picture David W. · Apr 18, 2014

You can use basename even though it's not a file. Strip off the file name using dirname, then use basename to get the last element of the string:

dir="/from/here/to/there.txt"
dir="$(dirname $dir)"   # Returns "/from/here/to"
dir="$(basename $dir)"  # Returns just "to"