How to get the last part of dirname in Bash How to get the last part of dirname in Bash bash bash

How to get the last part of dirname in Bash


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"


The opposite of dirname is basename:

basename "$(dirname "/from/here/to/there.txt")"


Using bash string functions:

$ s="/from/here/to/there.txt"$ s="${s%/*}" && echo "${s##*/}"to