Strip directory and suffix from filenames
Syntax basename string [suffix] basename [-a] [-s suffix] string [...] dirname string Key -a Treat every argument as a string (as if basename were invoked with just one argument) -s The suffix is taken as its argument, all other arguments are treated as a string.
The basename utility deletes any prefix ending with the last slash / character present in string (after first stripping trailing slashes), and a suffix, if given. The suffix is not stripped if it is identical to the remaining characters in string. The resulting filename is written to the standard output.
A non-existent suffix is ignored.
The dirname utility deletes the filename portion, beginning with the last slash `/' character to the end of string (after first stripping trailing slashes), and writes the result to the standard output.
basename and dirname will exit 0 on success, and >0 if an error occurs.
Examples
Set the shell variable FOO to /usr/bin
$ FOO=`dirname /usr/bin/trail`
Set the shell variable FOO$ to the basename of iTunes
$ FOO=`basename /Applications/itunes.app`
itunes.app
“Then I came up with this crazy idea just to walk out on the stage with no band at all and just start singing whatever came to mind. I actually fought the idea for a while because it seemed almost too radical, but it became obvious what I was supposed to be doing” - Bobby McFerrin
Related macOS commands:
ls - List information about file(s)
Equivalent Windows command: Variable Substring