I'm afraid such a method doesn't exist.
In the Eighties, Karl Berry proposed a font naming scheme for TeX/LaTeX that ensured, as much as possible, that metric file names consisted of at most eight characters, which was a constraint forced basically by an operating system I don't want to mention; the same constraint was forced for file names on CD-ROM.
A “Berry name” consists of various parts:
S TT W [V...] [N] [E] [DD]
(the square brackets represent optional parts), where S is one letter denoting the supplier (p is Adobe, b is Bitstream, u is URW, and so on). What you're interested in is TT, two alphanumeric characters representing the family name.
The document “Fontname – Filenames for TeX fonts” by Karl Berry is available in the major TeX distributions with texdoc fontname or at texdoc.net (or on CTAN). There you find a long list of two letter family names with the correspondence with the “real” font name.
Thus phv is “Adobe Helvetica”, while bhv can be “Bitstream Swiss 721” and uhv is “URW Nimbus Sans”.
Metafont based fonts don't follow the convention, so the family name for the Computer Modern Roman fonts is cmr. There is a family pair mr (Madrone) and the supplier c is Compugraphic; but cmr10 does not conform to the Berry naming scheme, so it can't misunderstood for a (probably inexistent) “Compugraphic Madrone”. If this font did exist problems would arise, though.
This is the past, however. Nowadays operating systems have lifted the eight character restriction on file names (at least at user level). Suppliers of LaTeX fonts have started using freely file names and no convention is followed.
For instance, the Quattrocento font uses Quattrocento-TLF as family name, while Iwona uses iwona and Linux Libertine has LinuxLibertineT-xxx (xxx stands for a two or three letter addition. The newpxtext package uses family names such as ntxr or ntxss.
The shell command
locate /t1 | grep 'texlive/2012' | grep '\.fd$'
which should find all .fd files relative to the T1 encoding finds 286 files; another 59 are found with /T1 (not all packages follow the recommendation that font description file names start with the encoding in lower case).
Basically, an instruction such as
\fontfamily{<string>}\selectfont
loads the font description file <encoding><string>.fd. Say we're using T1 as output encoding; then \fontfamily{xyz} would load either t1xyz.fd or T1xyz.fd (if existent on your system).
Choosing from these font description file names is the only reliable way to find out what fonts you have.
Instead of the locate command one can exploit the ls-R file name cache of TeX Live, on Unix systems:
grep -i '^t1.*\.fd$' $(kpsewhich --all ls-R)
Note. The --all option seems to be replaceable by -a, which is what I've always used, but the short option is not documented.
locatecommand installed by default and feels too lazy to install it, it can be substituted withfind <path to texmf-dist directory> -name t1* | grep '\.fd'– d-cmst Jun 13 '13 at 13:20ls-Rfile name caches. – egreg Jun 13 '13 at 13:30ls-Routputs 350 .fd files instead of the 287 of the previous method (TL 2013 here). Any idea what's the reason for the difference? – d-cmst Jun 13 '13 at 13:53locateand 369 withgrep. The difference are 17.fdfiles I have intexmf-local– egreg Jun 13 '13 at 14:07T1– d-cmst Jun 13 '13 at 14:12fontspecwith XeTeX and LuaTeX, where you don't even have.fdfiles... – Martin Schröder Jun 14 '13 at 08:20fontspeccomputes a family name on the fly; using\fontfamilywith it is possible, but requires to know what name has been assigned. – egreg Jun 14 '13 at 09:13kpsewhichnor the CLI help shows an-aswitch, but apparently it works. – mafp Jun 14 '13 at 10:47--allbut not the short version-a(which works). – egreg Jun 14 '13 at 10:50