It does *not* look at the file "type". (Unix actually has a very different notion of "type".)
The wildcard just looks at the characters in the *filename*. So, the following might list all the PY, PS, PDF and PNG files in the current directory, which is quite a motley collection:
Now, in practice, people often use the whole extension because that's what they are interested in, and that's why I used that as an example, since it's sensible and indicative of real-world usage.
But the wildcards are only looking at the filename as a string.
When listing files individually would be too tedious and error prone.
Suppose you compile a bunch of C programs:
and then you have whole bunch of .o files. Later, you want to delete all those .o files:
What a great question! No, the wildcard character stops at
directory boundaries. So ~/* gets all the files and
folders in my home directory, but none of the files in those folders.
Yes
Yes, it's a "long" listing and gives more information: file type, permissions, owner and group, size, and name, as well as a few other things.
Well, *I* use it all the time. I'm using it to write this file.
When would *you* use it? Probably very rarely. Nowadays, I
often see tutorials and such specifying nano (instead
of vi or emacs); nano is a
very limited text editor that's also available on Unix servers. So
if you're using a remote server (e.g. AWS) and you need to edit a
file or two on the server, you would probably SSH in and use
vi/vim/emacs/nano to do that editing.