Q:

Why do old C-style method names continue being used in modern languages?

I understand that in the earlier days of computing, shorter method names like printf made sense, because storage was limited. But why do modern languages like Python and Go still use the less readable names from the C APIs? Why don't they switch to a more readable form like print_format, the same goes for other names. I wouldn't mind having to write make_directory instead of mkdir in go.
People have suggested that this question has been asked before, but the questions I've found are about whether abbreviated names are bad practice. This question assumes that the answer to this question is usually yes.

A:

But why do modern languages like python and go still use the less readable names from the C apis?

Because everyone (in their domain) knows the short names. If you made different names, people would question "what makes this different from mkdir?" and generally get confused that stuff isn't where they expect it.
Because without auto-complete in an IDE, long names with generally difficult to type characters like _ annoy skilled programmers. Annoyed programmers limit the adoption of a language, meaning designers don't make the names or you never hear about the languages that used them since they never took off.

These are both kinda flimsy arguments of course. 
Readable code is known to be better than writable code these days. And having an IDE with auto-complete handles option 2, though there are still people who argue against IDE's as bloat, or a crutch that hinder programmers' abilities. Having an IDE with intellisense (or the equivalent) helps a bunch with #1 as well, though that has the same arguments and works less well in a non-object oriented environment.
Still, these flimsy arguments (and the vagaries of human taste) are enough momentum to keep the trend going.

A:

Why do we continue to use the old Germanic "Albert" as a boys name and not the modern English translation "Shining Hero"? 
Because a name is just a label. It's good to give new stuff a meaningful name, but, after long usage the name itself becomes the meaning.
printf means something very specific to generations of programmers -- a print function with a template that will use %2d to indicate where you want a two digit number printed etc. 
On the other hand print_format would indicate a function that will somehow format and print some data and you will need to look up the docs to find out how to use it. 

A:

It's simple.  Using the traditional names is convenient for millions of experienced programmers.  We know what "mkdir" and "printf" mean.  It is slightly inconvenient for novices, but they soon get over it.
Similarly, most (all?) LISP dialects continue to use "car" and "cdr" instead of "head" and "tail".  

