Coming from the Windows world, I have found the majority of the
folder directory names to be quite intuitive:
\Program Filescontains files used by programs (surprise!)
\Program Files (x86)contains files used by 32-bit programs on 64-bit OSes
Documents and Settings) contains users' files, i.e. documents and settings
\Users\USER\Application Datacontains application-specific data
\Users\USER\Documentscontains documents belonging to the user
\Windowscontains files that belong to the operation of Windows itself
\Windows\Fontsstores font files (surprise!)
\Windows\Tempis a global temporary directory
et cetera. Even if I had no idea what these folders did, I could guess with good accuracy from their names.
Now I'm taking a good look at Linux, and getting quite confused about how to find my way around the file system.
/bincontains binaries. But so do
/usr/sbin, and probably more that I don't know about. Which is which?? What is the difference between them? If I want to make a binary and put it somewhere system-wide, where do I put it?
/mediacontains external media file systems. But so does
/mnt. And neither of them contain anything on my system at the moment; everything seems to be in
/dev. What's the difference? Where are the other partitions on my hard disk, like the
D:that were in Windows?
/homecontains the user files and settings. That much is intuitive, but then, what is supposed to go into
/usr? And how come
/rootis still separate, even though it's a user with files and settings?
/libcontains shared libraries, like DLLs. But so does
/usr/lib. What's the difference?
/etc? Does it really stand for "et cetera", or something else? What kinds of files should go in there -- global or local? Is it a catch-all for things no one knew where to put, or is there a particular use case for it?
/var? What do they stand for and what are they used for? I haven't seen anything like them in Windows*, and I just can't figure out what they might be for.
If anyone can think of other standard places that might be good to know about, feel free to add it to the question; hopefully this can be a good reference for people like me, who are starting to get familiar with *nix systems.
*OK, that's a lie. I've seen similar things in WinObj, but obviously not on a regular basis. I still don't know what these do on Linux, though.