According to dictionary.com, a subfolder is "A folder within a folder.", and (same site) a subdirectory is "A directory below another directory in heirarchy."
Folder is sort of like a synonym for directory, but it is more commonly used in a GUI environment (not so much on the command-line--people will still understand either one, though). I wouldn't call
ghi a subfolder of
abc, whether or not that's technically correct by some definition.
While it would suffice to say that your
ghi is a subdirectory (as is
def), if you want to be more obvious about it, you can call it a descendant directory (which although isn't a particularly common term, is in use, and will tell people exactly what you mean without ambiguity; people understand the terms
parent directory and
child directory, so
descendant directory isn't a huge stretch of the imagination, even if you've never heard it before). Similarly, you could say sub-subfolder to be even more explicit in your case scenario (if you only mean it to refer to that particular depth).
It would be incorrect to call it a recursive folder. Recursion is such as when you have a function call itself. This is often used to do such things as traverse through directory structures programmatically. However, it's more of an action than an object. There's no programmatic logic in place to call folders themselves recursive. You can, however, do things to folders recursively (but just because folders are traversed doesn't mean it's necessarily done recursively; you would need insight about the code to know that; however, recursion is a really good guess). Some command-line programs will have a
-r option for doing things recursively (like
rm -r someDirectory will delete
someDirectory and all its contents, recursively; that doesn't mean it's the only way they could have programmed it to delete it, though, even if it is the most obvious to many). However, you'll note that creating deeper directories and accessing a single path (regardless of how deep it is) normally do not require recursion. It's when you're trying to modify all the files or nodes in a complex structure where recursion makes more sense.
Nested means that something is within something else, like brackets within brackets, an if statement within an if statement, or a loop within a loop. I guess you could call it a nested subfolder, as jimm101 mentioned in the comments, but I wouldn't recommend it, personally, since it's more to learn for those who don't know what nesting is, and more to think about for those who do. If you're programming, you probably don't want to think more than you have to about this sort of stuff (nesting and subdirectories aren't usually thought of in the same context for them). If you're a business person, or just a power user, go ahead (but I still don't recommend it, as it'll make its way back to programmers and increase the complexity they have to work with; programmers work with a lot of complexity, so even little things like this can matter).