Bash: Get Filename, File Extension and Path from Full Path

The following commands will allow you extract various information from the full path of a file.

Part of the information is the filename, the file extension, the file base and the directory it is located in.

```# Truncate the longest match of */ from the beginning of the string
filename="\${fullpath##*/}";
# Get the sub-string from the start (position 0) to the position where the filename starts
directory="\${fullpath:0:\${#fullpath} - \${#filename}}";
# Strip shortest match of . plus at least one non-dot char from end of the filename
base="\${filename%.[^.]*}";
# Get the sub-string from length of base to end of filename
extension="\${filename:\${#base} + 1}";
# If we have an extension and no base, it means we do not really have an extension but only a base
if [[ -z "\$base" && -n "\$extension" ]]; then
base=".\$extension";
extension="";
fi
echo -e "Original:\t'\$fullpath':\n\tdirectory:\t'\$directory'\n\tfilename:\t'\$filename'\n\tbase name:\t'\$base'\n\textension:\t'\$extension'"
```